2014-01-08 40 views
1

如何將JSON數據通過骨幹模型傳遞到視圖?BackboneJS - 顯示JSON數據

我的模型是這樣的:

define([ 
    "jquery", 
    "backbone" 
], 

function($, Backbone) { 
var Model = Backbone.Model.extend({ 
    url: "./bands.php", 

    defaults: { 
     "id": '', 
     "band": '', 
     "label": '' 
    } 
}); 

return Model; 
}); 

我查看代碼如下所示:

define(['backbone','handlebars', 'text!templates/bandpage.html'], 

    function(Backbone,Handlebars, Template) { 


     'use strict'; 

     var BandpageView = Backbone.View.extend({ 

      template: Handlebars.compile(Template), 

      initialize: function() { 
      }, 

      render: function() { 
       this.$el.html(this.template(this.model.toJSON())); 
        return this; 
      } 

     }); 

     return BandpageView; 

    } 
); 

,並在我的HTML模板我有

<div> 
    <p><%= id %></p> 
    <p><%= band %></p> 
    <p><%= label %></p> 
</div> 

它不顯示任何東西,我得到錯誤「不能調用方法」到未定義的「JSON」

我做錯了什麼?

+0

請出示查看代碼。 – ram

+0

好的,我粘貼了我的視圖代碼 – SHT

+0

你在哪裏創建了新的實例?新模型和新的Bandpageview? – tewathia

回答

0

試試這個:

更新視圖initialize爲:

initialize: function() { 
    this.listenTo(this.model, "change", this.render); 
}, 

創建視圖實例爲:

var view = new BandpageView({model: new Model()}); 
+0

這給了我錯誤Uncaught ReferenceError:模型未定義 – SHT

+0

嗯...仍然沒有改變。是否因爲我的模型在一個文件夾中,我的視圖在另一個文件夾等中? – SHT

+0

@SHT:是的。你需要參考模型。根據您的實施更新我的代碼。 – ram