如何使用嵌套的hasMany关系的ember数据?

时间:2014-05-19 23:30:39

标签: ember.js ember-data

我有一些看起来像这样的数据模型:

App.Order = DS.Model.extend({
  name: DS.attr('string'),
  legs: DS.hasMany('leg', {async: false})
});


App.Leg = DS.Model.extend({
  name: DS.attr('string'),
  order: DS.belongsTo('order'),
  stops: DS.hasMany('stop', {async: false})
});


App.Stop = DS.Model.extend({
  name: DS.attr('string'),
  leg: DS.belongsTo('leg'),
});

返回的JSON如下所示:

{
  "orders": [
    {
      "id": 1,
      "name": "Order 1",
      "legs": []
    },
    {
      "id": 2,
      "name": "Order 2",
      "legs": [1]
    },
    {
      "id": 3,
      "name": "Order 3",
      "legs": [2,3]
    }
  ],
  "legs": [
    {
      "id": 1,
      "name": "Leg 1",
      "stops": [1,2]
    },
    {
      "id": 2,
      "name": "Leg 2",
      "stops": [2,3]
    },
    {
      "id": 3,
      "name": "Leg 3",
      "stops": [1,3]
    }
  ],
  "stops": [
    {
      "id": 2,
      "name": "Stop 2"
    },
    {
      "id": 1,
      "name": "Stop 1"
    },
    {
      "id": 3,
      "name": "Stop 3"
    }
  ]
}

当我使用async:true时,ember为相关的分支(legs?ids[]=1legs?ids[]=2&ids[]=3)发出了http请求,但绝不会请求相关的停靠点。

所以我如上图所示切换到侧面加载,但相关腿部仍然没有停止。

你能帮我理解如何使用嵌套的hasMany关系加载模型吗?或者我哪里出错了?我愿意使用async: trueasync: false,只要我可以将嵌套数据加载到模型中。

0 个答案:

没有答案