2

我陷入了一個非常煩人的問題,並決定尋找幫助,因爲錯誤很難弄清楚。Backbone.Marionette拋出錯誤嘗試使用CollectionView

我在單頁應用程序中有一個Marionette Layout視圖,代表切換出的面板。我有它工作正常,直到我嘗試添加一個CollectionView作爲佈局的子節點。我做錯了,但我得到的錯誤不是很有幫助。

我收到此錯誤:

Uncaught TypeError: undefined is not a function backbone.marionette.js:1240 
Marionette.CollectionView.Marionette.View.extend._initChildViewStorage backbone.marionette.js:1240 
Marionette.CollectionView.Marionette.View.extend.constructor backbone.marionette.js:1014 
child backbone.js:1531 
Marionette.Layout.extend.initialize 

我想不通,我需要在這種情況下,以界定什麼功能。

這是我的頁面「佈局(因爲它坐落在需要包裝)

return Marionette.Layout.extend({ 
     template: Template, 
     className: "page", 

     initialize: function(options) { 
      this.collection = new DataSet(); 
      this.collection.fetch();           

      // ADD THE VIEW 
      var dataview = new DrinkCollectionView({ collection:this.collection }); 

      // SHOW THE VIEW 
      this.content.show(dataview); 

     }, 

     regions: { 
      content: "#page-content" 
     }, 

    }); 

這是我的CollectionView我嘗試使用。我把它簡化到最低限度,試圖讓它無法運行。

return Marionette.CollectionView.extend({ 
     collection: MyDataSet, 
     itemView: MyItemView, 
    }); 

我認爲我做錯了什麼,在init方法創造一些東西,但我不知道是什麼做的正確方法。

任何幫助將不勝感激。

感謝, 摹

+0

你有沒有成功?將Marionette從1.2更新爲1.4後,出現同樣的錯誤。 – sashaegorov

回答

0

如何mu is too short說,很難說什麼怎麼回事。反正嘗試之前,你定義在Marionette.CollectionView

0

兩件事情,我看Marionette.Layout,同看,如果你這樣定義Template瓦爾:

1)不能確定有關返回「木偶你的用例。 Layout.extend' 假設您稍後將使用'new'創建一個對象? 這意味着你應該有

var MyLayout = Marionette.Layout.extend {...} 
var _myLayout = new MyLayout(); 

2)區域內應呈現的等價 '的OnRender' 來代替:

onRender: function() { 
    // SHOW THE VIEW 
    this.content.show(new DrinkCollectionView({ collection:this.collection })); 

} 
相關問題