gpt4 book ai didi

javascript - 一旦获取并呈现集合,是否可以在 Backbone 中触发事件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:51:03 24 4
gpt4 key购买 nike

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

collection view”有一个“add”方法,它为集合中的每个新项目生成一个“item view”,在该 View 上调用“render”,并将其添加到 Collection View 。

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

最佳答案

fetch method on collections接受一个 success 参数:

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');
}
});

任何关心的人都可以collection.on('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);
}

关于javascript - 一旦获取并呈现集合,是否可以在 Backbone 中触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13605076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com