我想知道在处理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是内部属性。我可以改变它并取消属性,但我想遵循惯例..
提前致谢。
答案 0 :(得分:1)
在您的模型中,您唯一需要的是:
App.BookingModel = DS.Model.extend({
name: DS.attr('string)
});
Ember数据使用JSON约定来创建模型。它查看JSON中的类型参数以连接到ember模型,并查看连接到ember模型属性的属性。