对骨干JS来说很新颖,我需要知道在模型中的集合中的模型上循环和设置属性的“正确”方式。在嵌套集合中设置模型中的骨干属性
我的模式是这样的:
var mediaItem = Backbone.Model.extend({
});
var mediaItems = Backbone.Collection.extend({
model: mediaItem
});
var story = Backbone.Model.extend({
initialize: function() {
this.MediaItems = new mediaItems(this.get('MediaItems'));
this.MediaItems.parent = this;
}
});
我想要做的就是通过MediaItems回路在给定的故事,并设置每个的宽度和高度。如果我不喜欢这样......
storyInstance.MediaItems.each(function (mediaItem) {
mediaItem.set('Width', 200);
mediaItem.set('Height', 100);
});
...那么storyInstance.MediaItems属性中的MediaItem模型正确更新,但storyInstance.attributes.MediaItems中的对象都没有。当我随后在Story模型中调用JSON()时,就会使用属性树。
我可以修改上面的代码来循环显示属性,但是我觉得我已经设置了错误的模型,或者有一个更标准的方法来做到这一点?
谢谢。
是的,别的是错的 - 调用'set'应该更新属性。你在这里指的是什么:“MediaItems属性中的模型”?我在代码中看不到那部分内容。 – McGarnagle
我刚刚给Ravi Hamsa的回答添加了一些评论 - 希望这有助于解释? – Fijjit