2

Why is the item variable undefined in this Backbone example?

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);
});

jsFiddle here: http://jsfiddle.net/netroworx/KLYL9/

4

2 回答 2

10

将其更改为:

actionCollection.each(function(item) {
        alert(item);
});

它工作正常。

这是因为 actionCollection 不是数组,所以 _.each(collection) 不起作用,但 collection.each 起作用,因为该函数内置于 Backbone 集合中。

话虽如此,这也有效:

_.each(actionCollection.toJSON(), function(item) {
        alert(item);
});

因为现在集合是一个实际的数组。

于 2013-07-01T09:32:47.033 回答
0

_.each接受一个数组作为第一个参数,但您传递了一个Collection.

只需使用以下Collection.each方法:

actionCollection.each(function(item){
  //do stuff with item
});
于 2013-07-01T09:35:12.330 回答