我想为自己一劳永逸地记录(并永久记录!)父母和孩子之间的关系以及理想的 json 结构,以及路由和控制器的基本示例。
当我(希望)得到答案和评论时,我将更新问题以反映最佳实践。
所以,我有我的余烬模型:
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:此时我是否应该包括相关数据(所有客户、所有订单、所有订单行)?或者最好不要包含子数据,而是从服务器按需获取这些数据?
我将暂时离开它 - 希望我能很快开始理解嵌套数据!谢谢。