Ember.js 如何使用余烬数据创建一个新记录,并立即将其添加到另一个记录的hasMany属性中?
余烬很有趣,但文档确实很薄 我正在成功地显示余烬数据记录的层次结构,现在我希望允许用户在父(部门)上下文中添加新的子(人员) 我本以为下面的代码会起作用,但事实并非如此。当newPerson被添加到数据存储时,person没有被添加到部门,我在控制台中得到错误。这个问题的好处是关于如何解释余烬数据错误的信息,因为它们非常不透明。我甚至不知道他们的哪一部分可以用谷歌搜索。这里我认为错误的相关部分是Ember.js 如何使用余烬数据创建一个新记录,并立即将其添加到另一个记录的hasMany属性中?,ember.js,ember-data,Ember.js,Ember Data,余烬很有趣,但文档确实很薄 我正在成功地显示余烬数据记录的层次结构,现在我希望允许用户在父(部门)上下文中添加新的子(人员) 我本以为下面的代码会起作用,但事实并非如此。当newPerson被添加到数据存储时,person没有被添加到部门,我在控制台中得到错误。这个问题的好处是关于如何解释余烬数据错误的信息,因为它们非常不透明。我甚至不知道他们的哪一部分可以用谷歌搜索。这里我认为错误的相关部分是Promise.prototype.\u onError addPerson(deptid)
Promise.prototype.\u onError
addPerson(deptid) {
var newID = Math.random().toString(16).slice(2);
var newPerson = this.store.createRecord('person', {
name: "Person Name",
id: newID,
devices: []
}).save();
this.store.find('department', deptid).then(function (department) {
department.pushObject(newPerson);
});
}
我怀疑您是否想在
部门
记录上推送对象
pushObject
相当于数组的push
,department
是一条单独的记录。您可能希望在部门记录上获取hasMany
集合,并在其上使用'pushObject'
var newPerson = this.store.createRecord('person', {
name: "Person Name",
id: newID,
devices: []
});
newPerson.save();
this.store.find('department', deptid).then(function (department) {
department.get('peeps').pushObject(newPerson);
});
啊!当然您的建议消除了错误,但创建了一个新的错误。此版本的控制台输出包括“assertPolymorphicType”和“notifyRecordRelationshipAdded”等内容。但是我的部门模型肯定包括
peeps:DS.hasMany('person')
。哎呀,我们试图添加承诺(从save方法返回),而不是记录。这就解决了它!谢谢