2012-11-22 49 views
0

在我的backbone.js代码中,我一直试图从url中获取单个模型。由于我的模型永远不会使用fetch()填充,所以我必须做错事情。使用backbone.js获取单个模型

我试图在互联网上找到解决方案,但我无法弄清楚我做错了什么。

任何帮助非常感谢!

我有一个JSON文件是这样的:

JSON = { size : 'small' , username : 'jasper' , messages : '3' } 

,代码:

(function($){ 

Header=Backbone.Model.extend({ 

    defaults:{ 

     size:"large", 

    }, 

    urlRoot:'urltofile.json', 

}); 

header=new Header(); 

var HeaderView=Backbone.View.extend({ 

    events:{  
     'click #header_account_options_login':'loginClicked' 
    }, 

    initialize:function(){ 

     $(this.el).append('<div id="header"></div>'); 

     _.bindAll(this,'render','loginClicked'); 

     dust.loadSource(dust.compile($(this.options.tpl).html(),'header-template')); 

     this.model.bind('change',this.render,this); 

     this.render(); 

    }, 

    render:function(){ 

     var_self=this; 

     dust.render('header-template',this.model.toJSON(),function(error,rendered){ 

      $('#header').replaceWith(rendered); 

     }); 

     return this; 

    }, 


    loginClicked:function(){ 

     this.model.fetch(); 
     console.log(this.model); 

    } 

}); 

var headerView=new HeaderView({ 

    el:'#container', 
    tpl:'#header-template', 
    model:header 

}); 

})(jQuery); 
+0

您可以指定'url'而不是'urlRoot'具有相同的值并试一试吗?它应该工作。 Coz'urlRoot'会追加模型后面的'id',其中'url'不会。 – Cyclone

+0

当我将其更改为url时,它仍然失败。如果你做'model.get(“some_attribute_name”)'它给了你什么,结果是 – Jasper

+0

? – Cyclone

回答

0

我发现这个问题的JSON是不正确。修复JSON解决了问题