2014-07-23 78 views
0

我寫一個新的骨幹應用程序,我得到的代碼一些錯誤,我在其他應用程序的工作。我正在爲這個應用程序使用最新版本的骨幹,所以我不知道是否有改變,使我在這裏做的事情破裂或什麼。谷歌整天都沒有給我任何幫助。骨幹型號不及格查看

我有一個集合,我分手,併發送個別模型的意見。視圖報告this.model未定義。

代碼:

的觀點:

DigitalAnalytics.View.TopPage = Backbone.Model.extend({ 
     tagName: 'tr', 
     className: 'db-toppage-tr', 
     template: DigitalAnalytics.Helper.template('db-analytics-toppages-template'), 
     initialize: function() { 
      console.log(this.model); // prints 'undefined' 
     }, 
     render: function() { 
      console.log(this.model); // prints 'undefined' 

      // This throws an error saying that it can not call html() on undefined 
      this.$el.html(this.template(this.model.toJSON())); 
      return this; 
     }, 
     events: {} 
    }); 

收集觀點:

DigitalAnalytics.View.Collection.TopPages = Backbone.View.extend({ 
    el: $('#db-analytics-toppages'), 
    template: DigitalAnalytics.Helper.template(''), 
    initialize: function() { 
     this.listenTo(this.collection, 'reset', this.render); // Never fires even though the collection is returned 
     this.collection.fetch(); // Works just fine 
    }, 
    render: function() { 
     this.collection.each(function(page, index) { 
      console.log(page.toJSON()); // writes the object to console just fine 
      var topPage = new DigitalAnalytics.View.TopPage({model: page}); 
      this.$el.append(topPage.render().el); 
     }, this); 
    } 
}); 
+1

我沒有在你的代碼看起來密切,但你的意思是從一個視圖,而不是模型('DigitalAnalytics.View.TopPage = Backbone.Model.extend')延伸? – Jack

+0

你應該擴展視圖而不是模型。 – apsdehal

回答

2

你可能已經擴展Backbone.Model,你應該在你的代碼已經延長Backbone.View 變化Backbone.Model.extendBackbone.View.extend ,使用Backbone.Model t創建一個Backbone模型母雞通過這個模型來查看你什麼時候啓動它。

+0

優勝者贏家。當它超級簡單明顯時,我討厭它。謝啦。 – David