0

所以我正在尝试按他们拥有的类别来计算我收藏中的模型。

这是我的代码:

App.Collections.channls = Backbone.Collection.extend({
    model:    App.Models.Channel,
    catCount: new Array(),

    initialize: function() {
      this.bind('add', this.onModelAddedd, this);
    },

    onModelAdded: function( model, collection ) {
         if (this.catCount[model.get('category_id')] == undefined) {
           this.catCount[model.get('category_id')] = 0;
         }
         this.catCount[model.get('category_id')]++;
    },

    returnCount: function() { return this.catCount }
});

我初始化了这个集合几次。

问题是当我得到catCount集合的属性时,数组就像一个全局变量。因此,它不仅计算了它自己的集合实例中的模型,而且数组还计算了添加到集合的所有实例中的所有模型。

任何人都知道如何使集合的属性只计入它自己的实例?

4

1 回答 1

1

也许你需要移动 catCount 来初始化函数?

initialize: function( ) {
   this.catCount= new Array();
   this.bind( 'add', this.onModelAddedd, this );
}

所以它将被初始化每个新的集合实例

于 2013-03-05T10:07:08.217 回答