gpt4 book ai didi

backbone.js - Backbone 集合 0.9.9 - 添加事件不起作用

转载 作者:行者123 更新时间:2023-12-02 05:20:48 26 4
gpt4 key购买 nike

Backbone 集合 0.9.9 - 添加事件不起作用将 backbone 更新到 0.9.9 后,我遇到了(添加)问题。

(function () {


var Model = Backbone.Model.extend({

initialize: function () {
console.log('initialize Model');
}
});


var Collection = Backbone.Collection.extend({

model: Model,
url: "/json.json",

initialize: function () {
console.log('initialize Collection');
}
});

var View = Backbone.View.extend({

initialize: function () {
console.log('initialize View');
}
});


var collection = new Collection([
{
"id" : "001",
"name" : "Дарья",
"text" : "1 Вопрос - Ответ 1"
}
]);

collection.on('add', function () {
console.log('edd event', this)
});

collection.fetch({
add: true,
//silent: false,
success: function (model) {
console.log('fetch')
}
});


}());

console.log('edd event', this) - 不工作(在旧版本中它可以工作

最佳答案

似乎不再支持 collection.fetchadd 选项。

来自 0.9.2 源代码(collection.fetch):

collection[options.add ? 'add' : 'reset'](collection.parse(resp, xhr), options);

来自 0.9.9 源代码(collection.fetch):

var method = options.update ? 'update' : 'reset';
collection[method](resp, options);
if (success) success(collection, resp, options);

因此默认情况下 collection.fetch 将导致集合重置,并且将触发 reset 事件。如果您传递选项 update:true,将执行 update

根据 documentation for the new collection.update method , update 将触发添加模型的 add 事件,因此以下应该有效:

collection.fetch({
update: true,
success: function (model) {
console.log('fetch')
}
});

只需测试并注意,如果模型被删除或更改,新的更新方法也会触发 removechange 事件。

关于backbone.js - Backbone 集合 0.9.9 - 添加事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13877391/

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