2

このバックボーンの例で 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 Actions( [new Action(), new Action(), new Action(), new Action()]);

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

jsFiddle はこちら: http://jsfiddle.net/netroworx/KLYL9/

4

2 に答える 2

10

次のように変更します。

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

そして、それはうまくいきます。

これは、actionCollection が配列ではないため、_.each(collection) は機能しませんが、collection.each はその関数がバックボーン コレクションに組み込まれているため機能します。

そうは言っても、これも機能します:

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

コレクションが実際の配列になったためです。

于 2013-07-01T09:32:47.033 に答える