骨干-在初始化集合模型时传递数据
Backbone - passing data while initializing collection's model
这就是我目前处理传递给集合模型的数据的方式。但我不确定这是否是最好的/正确的方法。
MyCollection:
define([ 'underscore', 'backbone','models/mymodel'], function(_, Backbone, myModel){
var MyCollection = Backbone.Collection.extend({
model: function (attr, options){
options.data = {data: options.collection.options.some_data};
return new myModel(attr, options);
},
initialize: function(options) {
this.options = options;
}
});
return MyCollection;
});
MyModel:
define([ 'underscore', 'backbone' ], function(_, Backbone){
var MyModel = Backbone.Model.extend({
defaults: {
},
initialize: function(attr, options) {
` console.log(options.data)
}
});
return MyModel;
});
这是在初始化集合模型时传递数据的唯一方法吗?
不行,在MyCollection中试试:
model: myModel,
如果你创建一个新的myModel,这样做:
var model = new myModel({
prop1: 'something', // etc
});
您可以重写集合将属性散列转换为模型的方式。这是通过Collection._prepareModel
完成的,你可以改变传递给这个方法的选项:
var MyCollection = Backbone.Collection.extend({
model: MyModel,
_prepareModel: function(attrs, options) {
options = _.extend({}, options, {
data: this.options.some_data
});
return Backbone.Collection.prototype._prepareModel.call(this, attrs, options);
},
initialize: function(models, options) {
// note that the options hash is the second argument
this.options = options;
}
});
和一个演示http://jsfiddle.net/nikoshr/jd5d8fmy/
相关文章:
- 如何将本地json数据加载到Extjs数据模型中
- 更新成员数据模型中的记录列表
- 更正扁平数据模型和noSQL数据结构
- 如何在ember数据模型中表示数组
- 如何在路线中使用空白Ember数据模型
- Node/Express 无法正确更新数据模型
- 在汇编中的yaml前端创建复杂的数据模型
- 将计算的列值绑定到数据表数据模型
- 用Javascript描述数据模型
- AngularJS从另一个数据模型访问数据模型
- 获取成员数据模型中任何属性的属性类型
- 如何忽略ExtJS数据模型中的空字段
- 使用数组中的嵌套对象在AngularJS中切换用于动态选择菜单的数据模型
- 创建 Dojo 网格并从数据模型添加对话框
- 我们如何处理包含带有秘银的子数组的数据模型
- Ember 数据模型数组并不总是有数据
- Vue js 获取数据模型的第一个值
- 设置在 Javascript 数据模型中已有的数据下载
- 循环遍历 ArrayController 失败,因为它不是数组,即使控制器具有正确的数据模型也是如此
- 单击轨道按钮以永久更改数据模型和 css