我正在使用Ember的Ember 2.4.6和JSONApiAdapter來獲取數據並將數據發送到節點服務器。Ember不堅持belongsTo數據
我有以下標籤型號:
import DS from 'ember-data';
export default DS.Model.extend({
label: DS.attr('string'),
isRoot: DS.attr('boolean', {defaultValue: false'}),
parent: DS.belongsTo('tag') //belongs to self type
});
這裏的邏輯是,用戶可以在給定根標籤輸入多個子標籤。爲了保存子標籤和根標籤,我使用標籤服務的保存方法。從標籤服務的保存方法如下
import Ember from 'ember';
export default Ember.Service.extend({
//Some other code
save: function(parent, children){
return parent.save().then(response => {
return children.map(tag => {
tag.set('parent', response);
return tag.save();
});
});
}
});
現在,這裏的問題是,當我說了根標籤5子標籤,那麼關係越來越堅持只爲最後的標籤,即第五個標籤。
我已經創建了五個標籤說one
,two
,three
,爲root
父標籤four
和five
。然後,當從標記服務調用保存方法時,理想情況下,以下數據應該發送到服務器。
{data: {id: 1, type: 'tags', attributes: {label: "root", "is-root": true}, relationships: {parent: {data: null}}}}
{data: {id: 2, type: 'tags', attributes: {label: "one", "is-root": false}, relationships: {parent: {data: {id: 1, type: "tags"}}}}}
{data: {id: 3, type: 'tags', attributes: {label: "two", "is-root": false}, relationships: {parent: {data: {id: 1, type: "tags"}}}}}
{data: {id: 4, type: 'tags', attributes: {label: "three", "is-root": false}, relationships: {parent: {data: {id: 1, type: "tags"}}}}}
{data: {id: 5, type: 'tags', attributes: {label: "four", "is-root": false}, relationships: {parent: {data: {id: 1, type: "tags"}}}}}
{data: {id: 6, type: 'tags', attributes: {label: "five", "is-root": false}, relationships: {parent: {data: {id: 1, type: "tags"}}}}}
而是以下信息將要在屬於關聯信息只正在爲最後的標籤發送的服務器
{data: {id: 1, type: 'tags', attributes: {label: "root", "is-root": true}, relationships: {parent: {data: null}}}}
{data: {id: 2, type: 'tags', attributes: {label: "one", "is-root": false}, relationships: {parent: {data: null}}}}
{data: {id: 3, type: 'tags', attributes: {label: "two", "is-root": false}, relationships: {parent: {data: null}}}}
{data: {id: 4, type: 'tags', attributes: {label: "three", "is-root": false}, relationships: {parent: {data: null}}}}
{data: {id: 5, type: 'tags', attributes: {label: "four", "is-root": false}, relationships: {parent: {data: null}}}}
{data: {id: 6, type: 'tags', attributes: {label: "five", "is-root": false}, relationships: {parent: {data: {id: 1, type: "tags"}}}}}
,併爲所有其他標籤,父數據是越來越錯過。
不能準確理解爲什麼會發生這種情況。請在這裏建議我做錯了什麼。
您的模型是'tag'類型還是'userfield'類型?它似乎改變了模型定義和樣本數據 – Beno
@Beno謝謝,指出,糾正了問題 – Sumit
您的回購沒有完全相同的內容 – JonRed