Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 模型更改不会触发集合中的更改_Backbone.js_Backbone Events_Backbone Relational - Fatal编程技术网

Backbone.js 模型更改不会触发集合中的更改

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)
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
调用,以检查它是否在更改时被调用。此外,我之前假设您发布的代码只是一个示例,但要确认,您还需要将模型正确地添加到集合中。