主干:访问集合模型
Backbone: Access Collection Models
这个问题已经被问了好几次,但提供的解决方案都不适合我。
在此主干集合中,如何访问和循环遍历其模型?
我在下面的代码中尝试了几种方法;包括基于 Mark V 的答案的添加。
代码也可在此处获得:http://jsfiddle.net/LPbsP/3/
(function() {
console.log(Backbone);
window.App = {
Model: {},
Collection: {},
View: {}
};
App.Model.Whatever = Backbone.Model.extend({});
App.Collection.Whatever = Backbone.Collection.extend({
model: App.Model.Whatever,
initialize: function(models, options) {
this.getModels();
_.bindAll(this, 'getModelsWithBindAll');
this.getModelsWithBindAll();
console.log(this);
console.log(models);
models.each(function(model) {
console.log(model);
});
},
getModels: function() {
console.log('in getModels');
console.log(this);
whateverCollection.each(function(model) {
console.log(model);
console.log(model.toJSON());
});
},
getModelsWithBindAll: function() {
console.log('in getModelsWithBindAll');
console.log(this);
whateverCollection.each(function(model) {
console.log(model);
console.log(model.toJSON());
});
}
});
var whateverCollection = new App.Collection.Whatever([
{
name: 'jim',
title: 'boss'
},
{
name: 'tom',
title: 'worker'
}
]);
console.log('program code');
console.log(whateverCollection);
})();
结果:
Object (Backbone)
in getModels
r (length: 0, models: Array[0] ... )
Cannot call method 'each' of undefined
以下是我提到的其他问题:
尝试遍历主干中的集合以输出 DOM 中的属性
collection.each() 不迭代模型
无法循环主干收集
用于环路主干收集
有两种方法。
-
如果您需要在 initialize 方法中迭代它们,请将您的初始化方法声明为 initalize(模型、选项),因为这就是 Backbone 的调用方式。然后像迭代常规数组一样遍历 models 参数。这是因为在调用初始化时,this.models尚未填充模型。
-
如果你不需要在 initialize 方法中进行迭代,那么在定义你的 whateverCollection 之后,只需执行以下操作:
whateverCollection.each(function(model) { console.log(model); console.log(model.toJSON()); })
相关文章:
- 将多级 mongodb 文档转换为 Backbone.js 模型/集合
- 主干:如何保存模型集合中模型的属性更改
- 我应该何时/为什么从 BackboneJS 模型/集合扩展函数返回
- 主干 + 木偶 - 模型/集合的内存管理最佳实践
- 为什么预期的路线不使用帆.js蓝图 API 将项目添加到模型集合
- 主干模型/集合中的Javascript范围界定问题
- 使用Knockback.js过滤中的视图模型集合
- 正在清除主干模型/集合内存泄漏
- 主干集合和模型url,批量模型集合保存
- 如何从asp.net mvc将模型集合注入backbone.js
- JavaScript:Backbone.js获取json并将其加载到模型集合中
- 如何为我的所有BackboneJS模型/集合REST调用添加一个基本URL
- 我如何检测一个对象是一个水线模型或模型集合在Sails.js
- 在嵌套的骨干(木偶)模型/集合中冒泡事件
- 骨干关系——深度嵌套模型/集合
- 如何在主干视图中加载模型集合
- 类似骨干模型/集合的React库
- 从React组件更新模型/集合
- 主干监听嵌套模型/集合
- BackboneJS模型/集合urlRoot/URL的意义