如何使用Ember Data创建新记录并立即将其添加到另一条记录的hasMany属性中?

时间:2015-09-05 00:39:29

标签: ember.js ember-data

Ember很有趣,但文档确实很薄。

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

我原以为下面的代码会起作用,但事实并非如此。虽然newPerson已添加到数据存储中,但该人员未添加到部门中,我在控制台中收到错误。此问题的奖励将是关于如何解释Ember Data错误的信息,因为它们非常不透明。我甚至无法弄清楚谷歌的哪一部分。在这里,我认为错误的相关部分是Promise.prototype._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);
        });
     }

1 个答案:

答案 0 :(得分:1)

我怀疑你想pushObject记录department。对于数组,pushObject相当于pushdepartment是单独的记录。您可能想要获取部门记录中的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);
    });