处理ember-data时{J}应该如何

时间:2015-10-03 18:35:32

标签: json ember.js ember-data

我想知道在处理ember-data库时应该如何看待JSON的属性。

我正在搜索它,我发现应该是这样的:

我希望得到所有的预订,例如,所以应该是这样的:

{
  "data": [
   {
    "id": "209039090239390",
    "type": "booking",
    "attributes": {
      "name": "Booking one"
    }
   },
   {
    "id": "209039090239390",
    "type": "booking",
    "attributes": {
      "name": "Booking two"
    }
   }
  ]
}

所以,在这种情况下,我有两个预订,每个都有name属性。完美至今?让我们继续。

现在,在我的Ember模型中,我应该定义 HOW (这就是我想知道的)

像这样:

App.BookingModel = DS.Model.extend({
 type: DS.attr('string'),
 attributes: {
   name: DS.attr('string')
 }
});

或者像这样:

App.BookingModel = DS.Model.extend({
 type: DS.attr('string'),
 name: DS.attr('string')
});

我正在使用第一个选项,但我无法访问属性对象,因为会抛出错误:

Error while processing route: bookings Cannot read property '_attributes' of undefined

我已经尝试定义为第二个选项,但结果将是未定义的,因为在我的JSON中,NAME是内部属性。我可以改变它并取消属性,但我想遵循惯例..

提前致谢。

1 个答案:

答案 0 :(得分:1)

在您的模型中,您唯一需要的是:

App.BookingModel = DS.Model.extend({
 name: DS.attr('string)
});

Ember数据使用JSON约定来创建模型。它查看JSON中的类型参数以连接到ember模型,并查看连接到ember模型属性的属性。