2
我有一个模型的基本主干集合。骨干模型更新没有传播到集合
我工作的视图显示有关模型的信息,允许编辑。
在我的视图呈现中,我基于传入的'id'捕获模型。
render: function() {
this.model = myCollection.get(this.options.passedInId);
// do the render...
}
我那么有哪些更新模型,并调用一个click事件的渲染与更新
updateModel: function() {
var me = this;
this.model.set('someFlag', true);
this.model.save(this.model.toJSON(), {
success: function(model, resp) {
me.render();
}
}
我的问题是重新呈现时,它通过使第二次GET回来从集合返回模型的不同实例(我可以看到一个不同的cId),它不包含我更改的“someFlag”属性。因此,当视图重新呈现时,我的编辑不会显示出来。我知道可能会有更有效的处理方式,但我的问题是为什么会出现这种情况?不应该从集合中获取的模型包含我对该模型所做的编辑?
只有其他的东西是这个例子中的“myCollection”可能已经在编辑之后的初始get和下一个get之间被重置,但是id仍然存在,并且它找到只有一个没有任何更新的模型。
它会更好存储参考模型本身在'View.initialize(函数(参数){this.model = args.model;});'简单地调用'this.model.save( )'然后'this.render()'而不等待成功回调? – prototype 2013-03-14 16:16:11
也许这会起作用,但我真的试图弄清楚为什么这个改变没有反映在集合中。我觉得我不了解有关集合/模型如何在骨干中相互作用的内容。 – 2013-03-14 17:19:36
如果集合已经重置,那么预计模型的'cid'将会不同。您期望的成功回调模型的状态如何?你确定它是集合的同一个实例吗? – 2013-03-14 17:49:39