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

r1zhe5dt  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(103)

请帮助我。我有一个两个模型,分别是foobar模型。我试图使用POST/foos/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 }),
  });
pdtvr36n

pdtvr36n1#

您的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。

相关问题