在EmberJS中保存hasMany关系的正确方法是什么?

时间:2013-12-04 21:53:09

标签: ember.js ember-data

在EmberJS中,我正在尝试保存一个具有hasMany关系的模型。我在其他地方看过这个问题,但通常与父模型同时保持子模型有关。

就我而言,子模型已经存在,我只需要引用它们。我曾试图通过几种不同的方式做到这一点无济于事。我似乎无法在任何地方找到这个清楚记录,我看到的一半例子似乎已经过时了。

这是一次尝试的jsbin。

http://jsbin.com/oNuQIGEF/3/edit?html,js,output

单击该按钮应该将新用户添加到具有两个项目的列表中,就像显示的其他两个用户一样。但是,它只是为用户添加了没有项目。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

在向孩子添加孩子之前,你似乎必须坚持父母。以下修正了它:

App.UsersController = Ember.ArrayController.extend({
  actions: {
    save: function(model) {
      var controller = this;
      this.store.find('project').then(function(projects) {
        var user = controller.store.createRecord('user', {
          name: 'Joe'
        });
        user.save().then(function() {
          user.get('projects').pushObjects(projects);
        });
      });
    }
  },
});

另请查看以下jsBin