2014-04-03 107 views
0

我定義我的app.js兩個集合文件是這樣的:骨幹視圖使用多個集合

this.shoppingCartFullPageView.collections = { 
    supplyCategoriesCollection: this.supplyCategoriesCollection, 
    orderedSuppliesCollection: this.orderedSuppliesCollection 
} 

這裏是我的看法代碼:

var ShoppingCartFullPageView = Backbone.View.extend ({ 
    initialize: function() { 
    this.listenTo(this.collection, "reset", this.render); 
    }, 

    render: function() { 
     $(this.el).html(new ShoppingCartListView ({ 
      collection: this.collections.supplyCategoriesCollection 
     }).render().el); 

     $(this.el).append(new OrderedSupplyListView ({ 
      collection: this.collections.orderedSuppliesCollection 
     }).render().el); 

     return this; 
    } 
}); 

我有一個骨幹觀點渲染每個都有自己的集合的子視圖。這兩個子視圖呈現正確。問題在於初始化函數。 上面的代碼在兩個集合上偵聽「重置」。我只想在其中一個集合上「聽取」「重置」。當我嘗試「this.listenTo(this.collections.supplyCategoriesCollection,」reset「,this.render);」我收到一個未定義的錯誤。

回答

0

編輯

是你的集合初始化?

如何:

this.shoppingCartFullPageView.collections = { 
    supplyCategoriesCollection: new this.supplyCategoriesCollection(), 
    orderedSuppliesCollection: new this.orderedSuppliesCollection() 
} 
+0

ShoppingCartListView已在偵聽到集合正確。問題是ShoppingCartFullPageView正在監聽this.collections.supplyCategoriesCollection和this.collections.orderedSuppliesCollection。我希望它只聽前者。 – Sizzles27

+0

@ Sizzles27我更新了我的答案。未定義的錯誤可能是因爲你還沒有初始化你的集合。 – cclerville