如何从一个获取请求中获取许多模型或集合

时间:2012-05-30 22:25:50

标签: backbone.js backbone-relational

我有一个获取请求,响应看起来像这样。

response = {
   id: 1,
   title: 'text',
   followers: [{}, {}] // array of objects
}

正如您所看到的,响应是一个具有属性跟随器的对象,该属性跟随器是一个对象数组。

我想从这个响应中创建一个模型和一个集合, 一个具有以下属性:

response = {
   id: 1,
   title: 'text'
}

和另一个,模型集合

followers: [{}, {}];

实现目标的适当方法是什么?
我可以使用Backbone.Relation吗?
如果是,有一些例子吗?

3 个答案:

答案 0 :(得分:2)

我过去常常使用与@lecstor相同的方法,但我更喜欢在initialize()中这样做:

initialize: function(){
  this.followers = new Followers( this.get("followers") );
}

答案 1 :(得分:1)

根据你的需要/观点/等,我可能会在模型中包含该响应,并为粉丝创建一组模型...

MyModel = Backbone.Model.extend({
    urlRoot: '/url/to/get/response'
});

Follower = Backbone.Model.extend();

Followers = Backbone.Collection.extend({
    model: Follower
});

this.model = new MyModel({ id: 1 });
var that = this;
this.model.fetch({
    success: function(model, response){
        that.collection = new Followers( model.get('followers') )
    }
});

我认为您可以通过以下方式轻松地从集合中更新您的模型:

this.model.set('followers', this.collection.toJSON())

答案 2 :(得分:0)

为什么没有包含集合和子模型的模型?

本质上是一个视图模型