如何使用store.createRecord()传递hasMany关系的ID?

Abd*_*ziz 6 ember.js ember-data

假设我有以下型号:

// customer.js
DS.Model.extend({
  products: DS.hasMany('product')
});

// product.js
DS.Model.extend({
 customer: DS.belongsTo('customer')  
});
Run Code Online (Sandbox Code Playgroud)

我需要通过ID(尚未从后端加载)创建一个包含产品列表的客户,这类似于以下内容:

this.get('store').createRecord('customer', {products: [1, 2, 3]});  
Run Code Online (Sandbox Code Playgroud)

但这失败了,因为商店希望产品是DS.Model数组:

处理路由时出错:index断言失败:hasMany关系的所有元素必须是DS.Model的实例,您传递了[1,2,3]

如何使用ID提供的关联创建记录?

Emb*_*eak 1

处理路由时出错:index 断言失败:hasMany 关系的所有元素必须是 DS.Model 的实例,您传递了 [1,2,3] 错误

由于错误指出您需要传递 DS.Model 的实例,但只能使用 createRecord 创建实例,因此您可能需要执行如下操作,

    let product1 = this.store.createRecord('product',{customer:1});
    let product2 = this.store.createRecord('product',{customer:2});    
    return this.get('store').createRecord('customer', {products:[product1,product2]});
Run Code Online (Sandbox Code Playgroud)