【发布时间】:2013-09-16 18:51:56
【问题描述】:
我想为自己一劳永逸地记录(并永久记录!)父母和孩子之间的关系以及理想的 json 结构,以及路由和控制器的基本示例。
当我(希望)得到答案和 cmets 时,我会更新问题以反映最佳实践。
所以,我有我的 ember 模型:
App.Customer = DS.Model.extend({
name: DS.attr('string' ),
orders: DS.hasMany("order")
});
App.Order = DS.Model.extend({
carrier: DS.attr('string' ),
customer: DS.belongsTo("customer")
orderlines: DS.hasMany("orderline")
});
App.Orderline = DS.Model.extend({
order: DS.belongsTo("order"),
item: DS.belongsTo("item"),
price: DS.attr('number'),
qty: DS.attr('number'),
});
App.Item = DS.Model.extend({
name: DS.attr('string'),
orderlines: DS.hasMany("orderline")
});
问题 1:这些模型定义是否正确?
我可以采取几种方法来查看这些数据:
- 客户标签 |订单标签 |订单行标签
- 客户页面 -> 订单页面 -> 订单行页面
- 树状视图
- 谁能推荐任何其他可以显示此分层数据的 JS 小部件?
问题 2:
每一个都需要哪些路由器/控制器?
我有选项 2) 可以显示客户,但是当我单击客户的订单链接时,我会收到所有订单。可能是我的 json 错误.. 或者我更可能不知道如何显示所选客户的所有订单。或者两者都有:(
我目前有:
{"customers":[
{"name":"foobar inc","id":"0x181","orders":["0x386","0x3a4"]},
{"name":"barfoo ltd","id":"0x182","orders":["0x3de","0x3fd"]} ],
"orders":[
{"carrier":"Standard Mail","id":"0x386","customer_id":"0x181"},
{"carrier":"FlyByNight Courier","id":"0x3a4","customer_id":"0x181"},
{"carrier":"Standard Mail","id":"0x3de","customer_id":"0x182"},
{"carrier":"FlyByNight Courier","id":"0x3fd","customer_id":"0x182"} ]}
问题 3: 这是正确的吗? (我可以使 json 以任何格式出现,因此最好创建最适合 ember-data 的 json 结构)。
问题 4:此时我是否应该包括相关数据(所有客户、所有订单、所有订单行)?或者最好不要包含子数据,而是从服务器按需获取这些数据?
我将暂时离开它 - 希望我能尽快开始理解嵌套数据!谢谢。
【问题讨论】:
标签: ember.js ember-data