1

下面将是一个简单的主干应用程序的模型。所以考虑我想要有多个 url 调用,我被告知我应该使用集合(定义是模型的集合)。

模型格式:

    var Books1 = Backbone.Model.extend({
        urlRoot: '/books1'
    });

    var Books2 = Backbone.Model.extend({
        urlRoot: '/books2'
    });

采集格式:

    var Books = Backbone.Collection.extend({
        url: '/books'
    });

我的问题是我怎样才能在一个集合中组合多个模型?

要更清楚:

考虑我目前在单个视图中有 8-10 个模型(需要从单个视图调用 8 个以上的服务器请求)。我通过模型成功地做到了这一点。但从我最初的研究中,我得出结论,我应该使用集合,它将是所有使用的模型的集合。因此,通过将集合传递给视图,我将能够根据需要在视图的不同部分调用不同的模型。

我如何在视图中使用它?

要更清楚:

对于我现在使用的模型,this.model.save()或者newmodel.save()在我需要完成请求的地方之前声明模型之后。

干杯

4

1 回答 1

1

许多属性是通过http://underscorejs.org/#result处理的,因此您可以将 urlRoot 作为函数传递

var Books = Backbone.Model.extend({
  urlRoot: function(){
    return condition ? '/books' : '/bum'
  } 
});

收藏中也一样。但我不这么认为,将 2 个或多个模型组合在一个集合中是个好主意。如果可能的话,只需为另一个模型制作一个新系列......

视图呢?

您可以像这样将集合传递给视图实例:

var SomeView = Backbone.View.extend({
  initialize: function(opt){
    this.collection = new opt.collection
  }
});

var someView = new SomeView({collection: Books})
于 2013-08-21T09:03:39.407 回答