2015-01-16 50 views
0

比方說,存款屬於的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。它爲什麼這樣表現?我做錯了什麼,有沒有一種方法來實現所需的行爲?

在此先感謝您的幫助!

回答

1

檢查使用餘燼檢查

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

檢查數據標籤在BankAccount型號和看它是否把記錄在它正常工作時的負載降下來的店,它似乎prolly把它扔掉(不要把它放在商店裏),這樣當你得到它時,它會觸發一個承諾,你正在使用哪個適配器?我也看到有效載荷中的鏈接,它可能會變得困惑

+0

flylib感謝提示。我開始這樣做,但像這樣的線程最終也有幫助。 https://github.com/emberjs/data/pull/1516和https://github.com/emberjs/data/issues/1542 –

0

創建一個serializers/deposit.jsDS.EmbeddedRecordsMixin並告訴它嵌入bankAccount工作。

import DS from 'ember-data'; 

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