让我们说存款属于bankAccount:DS.belongsTo('bank-account', { async: true})
检索给定的deposit
时bankAccount
及其所有数据都在该存款的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
。为什么它会这样?我做错了什么,有没有办法实现所期望的行为?
提前感谢所有帮助!
答案 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'}
}
});