使用ember-data和非rest操作更新多个对象

Kim*_*man 5 ember.js ember-data

比方说,我有一个客户谁的hasMany 产品

api有一个PUT:/ customers /:id/cancel取消客户并取消所有产品,然后返回客户和产品进行侧载:

{
  customer: {
    id: 1,
    name: "Customer Name",
    canceled: true,
    products: [1, 2] },

  products: [
    {id: 1, customer_id: 1, name: "Product 1", canceled: true},
    {id: 2, customer_id: 1, name: "Product 2", canceled: true}
  ]
}
Run Code Online (Sandbox Code Playgroud)

我怎么会:

  1. 将该操作称为客户?
  2. 更新Ember商店中的所有对象?

Eri*_*son 1

对于你的问题的第 1 部分,

  • 你会想在商店里找到它var customer = store.find('customer', 1);
  • 然后告诉它删除customer.destroyRecord();
  • 最后提交删除customer.save();

对于第 2 部分:删除产品,您必须在 forEach 循环中手动删除它们,并将其隐藏在 . 中,Ember.run.once因为在游戏的此阶段,ember 数据中没有级联删除。

以下是顶级删除的示例,因此您需要遵循相同的逻辑,但对于您而言,products并遵循.then删除连接的客户的逻辑。

希望这能满足您的要求。干杯!