如何在ember.js中创建记录,同时向其关系中抛出所需的数据?

问题描述 投票:0回答:1

请帮助我。我有两个模型,分别是foobar模型。我试图使用/foos POST/foos端点上创建一条记录。然而职位POST /foos的要求为relationships.bar.data.id=1,2,3。请参阅下面的/components/foo-bar.js我的代码。我的问题是如何创建foo记录并向其关系声明这些ID?

/components/foo-bar.js

  foo.setProperties({
    bar: [1213,1231]
  });


 /models/foo.js
 import DS from 'ember-data';

  export default DS.Model.extend({
    bar:  DS.belongsTo('bar', { async: true }),
  });

  /models/bar.js
  import DS from 'ember-data';

  export default DS.Model.extend({
    foos:  DS.hasMany('foo', { async: true }),
  });
ember.js ember-data ember-cli
1个回答
0
投票

您的Foo模型使用belongsTo,这表明它可以与单个bar相关。您可以保存该栏,例如

/components/foo-bar.js
  let bar = this.store.createRecord('bar', {
    id: 1213
  });
  foo.setProperties({
    bar: bar
  });

如果您希望能够将一个foo设置为与许多bar型号相关,则可以使用hasMany并将其设置为:

/components/foo-bar.js
  let bar1 = this.store.createRecord('bar', {
    id: 1213
  });
  let bar2 = this.store.createRecord('bar', {
    id: 3456
  });
  foo.setProperties({
    bars: [bar1, bar2]
  });

无论哪种情况,您都应将实际型号bar设置为foo,而不仅仅是ID。

© www.soinside.com 2019 - 2024. All rights reserved.