Backbone.js 模型更改不会触发集合中的更改
我有两种不同的观点(1)、(2)Backbone.js 模型更改不会触发集合中的更改,backbone.js,backbone-events,backbone-relational,Backbone.js,Backbone Events,Backbone Relational,我有两种不同的观点(1)、(2) 1) 它显示用户列表 2) 它显示了用户的详细信息 在(2)中,可以更改名称。 那么我希望(1)中的对应项会相应地改变,但事实并非如此 应该如何修复/调试该问题 这里是我的基本代码: // list of users (1) View_1 = Backbone.View.extend({ collection: new MyCollection(), initialize: function () { this.collectio
1) 它显示用户列表
2) 它显示了用户的详细信息 在(2)中,可以更改名称。
那么我希望(1)中的对应项会相应地改变,但事实并非如此 应该如何修复/调试该问题 这里是我的基本代码:
// list of users (1)
View_1 = Backbone.View.extend({
collection: new MyCollection(),
initialize: function () {
this.collection.bind('add', this.addOne);
this.collection.bind('reset', this.addAll);
}
});
// user detail (2)
View_2 = Backbone.View.extend({
model: new MyModel()
});
MyCollection = Backbone.Collection.extend({
model: new MyModel()
});
您需要将
change
事件绑定到集合。现在只绑定reset
和add
,因此只有在向集合添加新模型时,或者在集合使用起始值初始化时,才会更新内容
this.collection.bind('change', this.render);
或者类似的,触发渲染任何需要更改的内容。在初始化
视图时,您似乎没有绑定到视图\u 1
中的change
事件。集合
我想知道在开始向其添加数据之前,您是否会在某个时候将其替换为新的集合
。我的意思是,如果你改变了参考的目标,谢谢你的时间。我试过了,但没用?你知道为什么吗?“或者我该如何测试它呢?”洛林伯纳德你能在问题中详细说明你到底尝试了什么吗?您需要在回调中放入一些console.log
调用,以检查它是否在更改时被调用。此外,我之前假设您发布的代码只是一个示例,但要确认,您还需要将模型正确地添加到集合中。