编程语言
首页 > 编程语言> > javascript – 一旦收集并呈现了一个集合,是否可以在Backbone中触发事件?

javascript – 一旦收集并呈现了一个集合,是否可以在Backbone中触发事件?

作者:互联网

在Backbone集合上调用collection.fetch({add:true})之后,我想在更新集合的视图完成渲染后触发事件.

collection view”具有“添加”方法,该方法为集合中的每个新项目生成“item view”,在该视图上调用“渲染”,并将其添加到集合视图中.

有没有办法在提取集合时触发事件,并且所有项目都已添加并呈现?

解决方法:

fetch method on collections采用成功参数:

fetch collection.fetch([options])

[…] The options hash takes success and error callbacks which will be passed (collection, response, options) and (collection, xhr, options) as arguments, respectively.

在更新集合后将调用成功回调,以便在触发并处理所有“添加”事件后调用它.所以你可以这样做:

collection.fetch({
    success: function(collection, response, options) {
        collection.trigger('fetched_and_notified');
    }
});

任何关心的人都可以收集.(‘fetched_and_notified’,…)来监听这样的事件.如果您愿意,可以提供自己的fetch实现来自动触发此事件,如下所示:

fetch: function(options) {
    options = options ? _.clone(options) : { };

    var success     = options.success;
    options.success = function(collection, response, options) {
        collection.trigger('fetched_and_notified', collection);
        if(success)
            success(collection, response, options);
    };
    Backbone.Collection.prototype.fetch.call(this, options);
}

标签:backbone-events,javascript,backbone-js
来源: https://codeday.me/bug/20190826/1725234.html