2

我有一个获取请求,其响应如下所示。

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

正如你所看到的,响应是一个对象,它有一个属性 follower,它是一个对象数组。

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

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

另一个是模型集合

followers: [{}, {}];

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

4

3 回答 3

2

我习惯使用与@lecstor 相同的方法,但我更initialize()喜欢这样做:

initialize: function(){
  this.followers = new Followers( this.get("followers") );
}
于 2012-05-31T08:44:44.923 回答
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())
于 2012-05-31T02:30:18.860 回答
0

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

本质上是一个视图模型

于 2012-05-31T01:00:48.513 回答