2014-01-08 47 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