Ember.js 如何使用余烬数据创建一个新记录,并立即将其添加到另一个记录的hasMany属性中?

Ember.js 如何使用余烬数据创建一个新记录,并立即将其添加到另一个记录的hasMany属性中?,ember.js,ember-data,Ember.js,Ember Data,余烬很有趣,但文档确实很薄 我正在成功地显示余烬数据记录的层次结构,现在我希望允许用户在父(部门)上下文中添加新的子(人员) 我本以为下面的代码会起作用,但事实并非如此。当newPerson被添加到数据存储时,person没有被添加到部门,我在控制台中得到错误。这个问题的好处是关于如何解释余烬数据错误的信息,因为它们非常不透明。我甚至不知道他们的哪一部分可以用谷歌搜索。这里我认为错误的相关部分是Promise.prototype.\u onError addPerson(deptid)

余烬很有趣,但文档确实很薄

我正在成功地显示余烬数据记录的层次结构,现在我希望允许用户在父(部门)上下文中添加新的子(人员)

我本以为下面的代码会起作用,但事实并非如此。当newPerson被添加到数据存储时,person没有被添加到部门,我在控制台中得到错误。这个问题的好处是关于如何解释余烬数据错误的信息,因为它们非常不透明。我甚至不知道他们的哪一部分可以用谷歌搜索。这里我认为错误的相关部分是
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方法返回),而不是记录。这就解决了它!谢谢