将belongsTo值分配给Ember模型

时间:2015-01-16 17:16:49

标签: ember.js ember-data

让我们说存款属于bankAccount:DS.belongsTo('bank-account', { async: true})

检索给定的depositbankAccount及其所有数据都在该存款的JSON有效负载中:

deposit: {links: [{rel: "self", href: null}], id: "6c71da6c-c915-4361-97a5-…} bank_account_id: "02b37863-f968-4455-9252-8bc1681ba4e7" bank_account: {account_type: ..., ..., ...} account_type: "checking" bank_name: "..." id: "02b37863-f968-4455-9252-8bc1681ba4e7" ... ...

因此,对于deposit的给定实例,我希望deposit.get('bankAccount')返回bankAccount的实例,其数据已嵌入deposit的json有效负载中。相反,它会返回一个承诺,尽管已经拥有该存款的所有数据bankAccount。为什么它会这样?我做错了什么,有没有办法实现所期望的行为?

提前感谢所有帮助!

2 个答案:

答案 0 :(得分:1)

使用ember检查器检查商店

https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi?hl=en

检查数据选项卡下的bankAccount模型类型,看看当有效负载下降时它是否正确地将记录放入其中,它似乎会把它扔掉(不把它放在商店里)所以当你做get,它会触发一个promise,你使用哪个适配器?我也看到有效载荷中的链接,它可能会变得混乱

答案 1 :(得分:0)

使用serializers/deposit.js创建DS.EmbeddedRecordsMixin并告诉其嵌入bankAccount

import DS from 'ember-data';

export default DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin,{
  attrs: {
    bankAccount: {embedded:'always'}
  }
});