2015-05-31 70 views
0

我有一個擁有x公司數量的Backbone collectionView。 我也有一個x數量的產品集合。功能:爲什麼所有的孩子都在更新這個骨幹網絡?

我想獲得隨機產品並將其添加到隨機公司的「資產」列表中。 (該公司從this.getRandomCompany()函數返回)

但是,當我運行以下功能,所有公司的孩子一次全部更新相同的產品。

console.log(randomCompany)的結果是一個孩子,爲什麼所有的孩子都在更新?

addProduct: function() { 
     var randomProductIndex = Math.round(Math.random() * (this.products.length)); 
     var randomProduct = new App.CompanyModule.Product({ 
      "name": this.products[randomProductIndex] 
     }); 

     this.getRandomCompany(_.bind(function(randomCompany) { 
      console.log(randomCompany); 
      randomCompany.model.get("assets").add(randomProduct); 
      this.render(); 
     }, this)); 
    }, 

回答

2

您的公司模型如何定義資產屬性?如果它被定義爲模型的直接屬性,或者被定義爲對象,那麼您將獲得所描述的行爲。如果是這種情況,則將其移至缺省方法,例如,

var Company = Backbone.Model.extend({ 
    ... 
    defaults: function() { 
     return { 
      assets: [] 
     } 
    }, 
    ... 
}); 
+0

道歉我不知道爲什麼代碼塊沒有格式化。但是你是對的,我的模型就是問題所在,我將它定義爲'CompanyModule.Company = Backbone.Model.extend(默認值:{ name:「Not specified」, status:「private」, assets:new CompanyModule.Products() } });'感謝您的幫助! – conor909

相關問題