Ember数据未加载我的所有数据

时间:2016-05-24 11:50:00

标签: javascript ember.js ember-data

我遇到了使用ember数据的麻烦,我正在寻求帮助。我使用findRecord返回单个记录(' location'),然后从该记录中获取单个属性(' product')。还有其他属性可以很好地返回(电话,姓名等),然而"产品"直到我至少两次触发模型调用才会返回。我已经检查了我的网络选项卡,它从api进入正常状态,但它似乎没有加载到ember数据中(直到它触发两次)。还有其他人遇到过这个吗?我完全难过了。谢谢!

1 个答案:

答案 0 :(得分:0)

在我看来,你有一个定义如下的模型:

/* location model */
export default Model.extend({
  phone: attr(),
  name: attr(),
  /*...*/
  product: belongsTo('product')
});

然后,您尝试执行的代码很可能是:

let name = location.get('name'); // This returns immediately.
let product = location.get('product'); // This does not work as expected

如果是这种情况,那么您的问题是您正在尝试在异步关系中同步从该位置获取该产品。这意味着您有两个选择:

选项#1 :使关系保持同步(如Paul Oliver所述)

/* location model */
export default Model.extend({
  phone: attr(),
  name: attr(),
  /*...*/
  product: belongsTo('product', {async: false})
});

选项#2 :等待承诺完成

location.get('product').then(function(product) {
  // Do something with product here
});