我正在使用backbone.js。到目前为止,我真的很喜欢它。
我有这样的东西:
- 模型
- ModelB
- ViewA
- ViewB
ModelA持有ModelB的集合
我如何用一个按钮构建ModelB的ViewB,当单击该按钮时,该按钮会更改集合中下一个ModelB实例的属性?
var col = this.model.collection;
var nextModel = col.at( col.indexOf(this.model) + 1)
if(nextModel) nextModel.set({whatevar});
您不需要跟踪父集合,骨干会为您做这件事。你也应该检查你是否在集合的末尾。
我想我弄明白了。我要分享一下,看看别人是怎么想的,这样别人也能从中受益。
我只是将对父集合的引用传递给集合中的每个模型。
在我的集合中,当添加一个新实例时:
var newModelBInstance = new ModelB( { id: "xxx", ParentCollection: this } );
然后,在ModelB视图中:
this.model.get("ParentCollection").at(this.model.sortValue + 1).set({ myAttr: false });