用于集合的主干定制属性

时间:2013-03-05 09:55:17

标签: javascript backbone.js

所以我正在尝试根据他们的类别计算我的模型中的模型。

这是我的代码:

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属性时,数组就像一个全局变量。因此,它不仅计算了自己的集合实例中的模型,而且数组计算了通过 all 集合实例添加的所有模型。

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

1 个答案:

答案 0 :(得分:1)

也许您需要将catCount移动到初始化函数?

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

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