Backbone.js 主干模型内的集合

Backbone.js 主干模型内的集合,backbone.js,Backbone.js,我想创建一个主干模型,并将另一个模型的集合存储到其属性中。所以,有父模型和子模型。每个父对象在其属性中都有一个或多个子对象作为数组存储 JSON将是这样的 Parent = { name: 'Name', age: 'Age', children: [{name: 'Name', age: 'Age'}, {name: 'Name', age: 'Age'}, {name: 'Name', age: 'Age'}] } 我

我想创建一个主干模型,并将另一个模型的集合存储到其属性中。所以,有父模型和子模型。每个父对象在其属性中都有一个或多个子对象作为数组存储

JSON将是这样的

Parent = {
    name: 'Name',
    age: 'Age',
    children:
        [{name: 'Name', age: 'Age'},
        {name: 'Name', age: 'Age'},
        {name: 'Name', age: 'Age'}]
}
我试图创建两个模型,并在另一个模型中插入一个,但仍然没有解决方案。我不想使用解析或其他服务器功能


那么,有什么解决方案或更好的方法来实现这一点吗?

据我所知,您希望使用此数据创建一个模型,并且如果模型中有
子项,则在模型中创建相同模型的集合

var Person = Backbone.Model.extend({
    initialize: function(){
        this.set('children', new Persons(this.get('children')));
    }
});

var Persons = Backbone.Collection.extend({
    model: Person
});
  • 在创建模型时-
    initialize:function(){…}
  • 让我们使用子数组-
    this.get('children')
  • 并收集新成员(…)
  • 集合将自行创建模型
  • 然后把所有的东西都放回去-
    this.set('children',…)

  • -在控制台中运行并查看结果。

    您必须重写父模型的
    parse()
    方法。或者使用像
    Backbone.relational
    这样的库。实际上,我不做服务器方面的事情,因为这个应用程序只在DOM中显示输出,而不显示数据库。你不必做任何服务器方面的事情,你只需覆盖
    .fetch()
    来使用任何源[甚至是普通对象],并相应地
    .parse()
    。否则,首先创建模型,然后创建集合,然后创建
    yourModel.set('attributeName',collection)
    ,这样做很好^^^它确实有效,但我的计划实际上是在创建子模型时将每个子模型嵌套到父模型中。我不会一次写入所有子项。您可以通过
    var newChild=newperson({})
    创建新的子项,然后将其添加到您的父项
    parent.get('children')。添加(newChild)
    其中
    parent
    是当前的现有人员。