Backbone.js backbonejs嵌套模型和集合的最佳做法

Backbone.js backbonejs嵌套模型和集合的最佳做法,backbone.js,Backbone.js,我不熟悉主干网,对使用模型和集合的正确方式感到困惑 在一对多关系中,我有两个嵌套的模型Parent和child。正如backbonejs所建议的,我有以下代码: var Child = Backbone.Model.extend({}); Child.Collection = Backbone.Collection.extend({}); var Parent = Backbone.Model.extend({ initialize: function() { this.child

我不熟悉主干网,对使用模型和集合的正确方式感到困惑

在一对多关系中,我有两个嵌套的模型
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、必须循环遍历所有父代(当他们的父代不止一个时,这会变得非常糟糕):

3、为每个模型创建一个全局缓存。(这是我目前正在使用的,但它要求我在每次添加/删除对象时保持全局缓存)

所以我想知道是否有一些标准模式可以做到这一点


谢谢。

管理嵌套模型的关系


使用主干网-relational@mpm伟大的这正是我要找的!谢谢
var child;
var parent = parentCollection.find(function(parent){ 
  child = parent.children.get(childId);
  return child;
});
var child = globalCache['child'].get(id);