我是Backbone的新手。你能给我一个提示我在这里缺少什么吗?
这是我的模特:
var Item = Backbone.Model.extend({
url: 'json/item.json',
parse: function(response){
return response.item;
},
});
var item = new Item();
item.fetch();
在console" item.toJSON();"按预期显示结果 - id,title等。但是当项目通过视图传递给模板时
...
this.$el.append( template( item.toJSON() ) );
...
它无法选择任何属性 - 例如item.title - >未定义。
json文件看起来像这样:
{
"item":{
"title": "something something",
.....
}
}
答案 0 :(得分:0)
致电时:
var item = new Item();
item.fetch();
此代码可能不同步,对吗?
因此,当您立即尝试渲染时,fetch还没有完成!
您可以在控制台中看到该对象,因为它已经填充了。
您的提取可能应该接受回调或返回Promise,以便在提取完成时通知您。
var item = new Item();
item.fetch().then(function(fetchedItem){
console.log(item === fetchedItem) // true
this.$el.append( template( item.toJSON() ) );
}.bind(this));