我正在使用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