【发布时间】:2012-11-22 12:49:41
【问题描述】:
在我的backbone.js 代码中,我一直试图从一个url 中获取一个模型。我一定是做错了什么,因为我的模型永远不会使用 fetch() 填充。
我尝试在互联网上寻找解决方案,但我无法弄清楚我做错了什么。
非常感谢任何帮助!
我有一个 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);
【问题讨论】:
-
你能用相同的值指定
url而不是urlRoot并试一试吗?它应该工作。因为urlRoot将在其后附加模型的id,而url不会。 -
当我将其更改为 url 时仍然失败。结果是一样的
-
如果你这样做
model.get("some_attribute_name")它会给你什么? -
返回报告:未定义。
-
获取函数也进入错误函数...这意味着有问题。所以我不希望模型被填充。
标签: javascript backbone.js model fetch