来自外部JSON文件的Backbone.js模型

时间:2015-04-20 21:27:18

标签: javascript jquery json backbone.js underscore.js

我是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",
     .....
     }
}

1 个答案:

答案 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));