如何在 ember 中创建记录.js同时将所需的数据扔到它的关系中?



请帮助我。我有两个模型,分别是foobar模型。我试图使用POST/foos/foos端点上创建记录。然而 邮政POST/foosrelationships.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 }),
});

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

最新更新