Backbone.js 如何将参数传递给Backbonejs模型';通过collection.push添加模型时是否初始化函数?
所以我有以下问题: 我有这样的收藏:Backbone.js 如何将参数传递给Backbonejs模型';通过collection.push添加模型时是否初始化函数?,backbone.js,parameter-passing,Backbone.js,Parameter Passing,所以我有以下问题: 我有这样的收藏: MyApp.ArticleCollection = Backbone.Collection.extend({ model: MyApp.ArticleModel, /** * Fire func1-Event */ func1: function () { ... } }); 在ajax调用中是这样填充的: self.
MyApp.ArticleCollection = Backbone.Collection.extend({
model: MyApp.ArticleModel,
/**
* Fire func1-Event
*/
func1: function () {
...
}
});
在ajax调用中是这样填充的:
self.collection.push(articleFromService);
现在我的问题是:创建模型时需要两个不同的数据集
- 案例A:这是一篇新文章。它应该有一个填充了所有可能对象的对象数组(例如,从XS到XXXL或类似的大小,其实并不重要)李>
- 案例二:文章需要修改。在本例中,本文为数组选择了一些值(例如大小:XS,L,XL),我需要对这些值进行评估,以便预填充editform
/**
* init Articlemodel
*/
initialize: function () {
this.dc = MyApp.DataCollector.getInstance(); //just a ring.js-class for caching data on clientside
this.set('Sizes', this.dc.sizes != null ? this.dc.sizes : this.dc.getValuesFromArticleFilter()); //needed for there are different "standard sizes"-arrays.
},
但我想要实现的是这样的,使用布尔开关:
/**
* init Articlemodel
*/
initialize: function (isEditMode) {
this.dc = MyApp.DataCollector.getInstance();
if (!isEditMode) {
this.set('Sizes', this.dc.sizes != null ? this.dc.sizes : this.dc.getValuesFromArticleFilter());
}
},
因此,现在我很遗憾地不知道如何将参数
isEditMode
传递给我在将其推入集合时初始化的每个模型。如果将选项对象传递给。push
(或.add
)集合将把该选项对象传递给它创建的每个新模型
考虑
该代码将记录两次bar
(从每个型号的initialize
中记录一次)
有了这些知识,您可以将您的
isEditMode
作为选项传递给self.collection.push(articleFromService)
并在模型的initialize中访问它,就像我访问上面的foo
选项一样。您应该能够将一个options对象传递给。push
,然后该options对象应该依次传递给每个已创建模型的initialize
函数。因此,我认为我在这里遗漏了一些明显的东西,但是。。。如何将其从集合传递到所创建模型的初始化函数?
var Model = Backbone.Model.extend({
initialize: function(attributes, options) {
console.log(options.foo);
}
});
var Collection = Backbone.Collection.extend({
model: Model
});
var myCollection = new Collection();
myCollection.push([
{ id: 1 },
{ id: 2 }
], { foo: 'bar' });