Javascript 来自外部JSON文件的Backbone.js模型
我是个新手。你能给我一个提示吗?我在这里遗漏了什么 这是我的模型:Javascript 来自外部JSON文件的Backbone.js模型,javascript,jquery,json,backbone.js,underscore.js,Javascript,Jquery,Json,Backbone.js,Underscore.js,我是个新手。你能给我一个提示吗?我在这里遗漏了什么 这是我的模型: var Item = Backbone.Model.extend({ url: 'json/item.json', parse: function(response){ return response.item; }, }); var item = new Item(); item.fetch(); 在控制台中,“item.toJSON();”将结果显示为预期的-id、title等,但当项通过视图传递
var Item = Backbone.Model.extend({
url: 'json/item.json',
parse: function(response){
return response.item;
},
});
var item = new Item();
item.fetch();
在控制台中,“item.toJSON();”将结果显示为预期的-id、title等,但当项通过视图传递到模板时
...
this.$el.append( template( item.toJSON() ) );
...
它不能选择任何属性-例如item.title->undefined
json文件如下所示:
{
"item":{
"title": "something something",
.....
}
}
当你打电话时:
var item = new Item();
item.fetch();
此代码可能不同步,对吗
因此,当您立即尝试渲染时,提取尚未完成
您可以在控制台中看到该对象,因为它已填充
您的获取可能应该接受回调或返回承诺,以便在获取完成时让您知道
var item = new Item();
item.fetch().then(function(fetchedItem){
console.log(item === fetchedItem) // true
this.$el.append( template( item.toJSON() ) );
}.bind(this));
您必须显示您的视图定义,但我的意思是视图工作正常,我想它与获取有关?因为如果我在控制台中添加:var newItem=item.toJSON():我将得到一个空对象:newItem object{},但是从控制台“item.toJSON();”再次显示了完整的对象。你最好附加完整的视图代码,但我想问题可能是由这一行中的错误引起的:
this.$el.append(模板(item.toJSON());
尝试使用this.$el.append(u.template(template_html,item.toJSON());
@Evgeniy自下划线1.7.0以来,下划线模板不再接受初始数据对象。.template
现在总是返回函数。请参阅@DefectlessVictory可能与