1
我是新來的骨幹,並混淆了使用模型和集合的正確方法。backbonejs嵌套模型和集合的最佳實踐
我有兩個嵌套模型Parent
和child
在一對多關係。作爲backbonejs建議,我有以下代碼:
var Child = Backbone.Model.extend({});
Child.Collection = Backbone.Collection.extend({});
var Parent = Backbone.Model.extend({
initialize: function() {
this.children = new Child.Collection;
}
});
var ParentView = Backbone.View.extend({
var parent = this.model
this.children = parent.children;
});
這工作正常,直到我開始需要通過「服務器ID」編輯單個孩子。 所以我結束了三種解決方案,其中沒有權在我看來:
1,按要求從服務器獲取現有實例的新實例:
var child = getFromServerById(id);
var parent = parentCollection.get(child.get('parentId'));
child = parent.children.get(child.id);
2,通過所有有循環父(當他們的一個以上的祖先,這成爲真的很可怕):
var child;
var parent = parentCollection.find(function(parent){
child = parent.children.get(childId);
return child;
});
3,對於每一個模型創建一個全局緩存。 (這是目前我有去,但它需要我繼續保持globalCache我每次添加/刪除時間對象)
var child = globalCache['child'].get(id);
所以我想知道,如果有一些標準的模式來做到這一點。
謝謝。
使用骨幹關係 – mpm 2013-04-09 21:11:09
@mpm太棒了!這就是我正在尋找的!謝謝。 – xzhang 2013-04-09 22:23:04