Javascript 每个主干都未定义
为什么在这个示例中未定义item变量Javascript 每个主干都未定义,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,为什么在这个示例中未定义item变量 var Action = Backbone.Model.extend({ defaults: { "selected": false, "name": "First Action", "targetDate": "10-04-2014" } }); var Actions = Backbone.Collection.extend({ model: Action }); var actionCollection = new
var Action = Backbone.Model.extend({
defaults: {
"selected": false,
"name": "First Action",
"targetDate": "10-04-2014"
}
});
var Actions = Backbone.Collection.extend({
model: Action
});
var actionCollection = new Actions( [new Action(), new Action(), new Action(), new Action()]);
_.each(actionCollection, function(item) {
alert(item);
});
jshiddle此处:将其更改为:
actionCollection.each(function(item) {
alert(item);
});
而且效果很好
这是因为actionCollection不是一个数组,所以u.each(collection)不起作用,但collection.each起作用,因为该函数内置于主干集合中
也就是说,这也适用于:
_.each(actionCollection.toJSON(), function(item) {
alert(item);
});
因为现在集合是一个实际的数组。
\每个
都接受一个数组作为第一个参数,但是您传递了一个集合
只需使用集合。每个方法:
actionCollection.each(function(item){
//do stuff with item
});