1

在这里,我正在创建一个带有 ID 的新 Divider,获取 Divider,并显示所有属性和单个属性:

var divider = new Divider({id: "A"});
divider.fetch();
console.info(divider.attributes);
console.info(divider.get("title"));

将 attributes.title的输出console.info(divider.attributes)显示为一个包含四个字符串的数组;然而; console.info(divider.get("title"))显示为空。谁能想到为什么它会返回为空?我能得到的唯一属性是“id”。此外,console.info(divider.attributes.title)还显示为空。

这是我的分频器模型:

Divider = Backbone.Model.extend({
  defaults: {
    "id": null,
    "title": null,
    "description": null
  }
}

让我知道我是否可以提供更多信息。谢谢!

4

2 回答 2

2

Backbone.js fetch 是异步的,因此如果您依赖于要通过 fetch 填充的属性,则需要确保在 fetch 完成后获取属性。这是一个例子:

var Divider = new Divider({id: "A"});
divider.fetch({success: function() {
  console.info(divider.get("title");
}});

但是,我仍然不确定为什么console.info(divider.attributes)显示 attributes.title 与数据,并console.info(divider.attributes.title)显示为空。

参考:Backbone.js 抓取问题(不能立即刷新数据)

于 2012-09-04T17:42:38.550 回答
1

很高兴您发现了异步问题。我遇到了与您相同的问题,并发现当返回数据时,您的模型的属性会在控制台中更新。因此,当您查看控制台时,fetch 方法已经完成并且您的模型已经更新。

于 2012-09-04T18:07:13.913 回答