【发布时间】:2013-02-12 22:58:34
【问题描述】:
我在某些用例中使用了带有路由器 v2 的 emberjs,它的效果非常好。对于通过单击 {{linkto ..}} 构造(具有相关的嵌套资源)来增加页面复杂性的用例,我没有任何问题。
但有时可能需要同时显示两个(或更多)不同的模型。
例如:
我有模型 Person 和模型 Pet。
类似:
DS.RESTAdapter.configure("plurals",{"person" : "people"})
App.Store = DS.Store.extend({
revision: 11,
adapter: DS.RESTAdapter.create({namespace: 'restservice'})
});
var attr = DS.attr;
App.Person = DS.Model.extend({
firstName: attr('string'),
lastName: attr('string'),
birthDay: attr('string'),
pets: DS.hasMany('App.Pet')
});
App.Pet = DS.Model.extend({
name: attr('string'),
species: attr('string'),
person: DS.belongsTo('App.Person')
});
由于某些原因,存在模型 Person 和 Pet 的实例,但尚未定义这两个模型之间的关系。
在通过 {{linkto ..}} 构造调用的页面中,我想实现一个 人 - 宠物作业编辑器。 在这种情况下,我想显示两个列表:
- 人员列表
- 宠物清单
通常此页面的路径只对应一个模型,但对于人 - 宠物分配编辑器来说,两个模型应该同时显示是完全自然的(无需额外的用户干预)。
实现它的最佳方法是什么。 我应该在没有路由概念的情况下加载模型吗?
确实存在这样的方式:
(represent the person - pet assigment editor 'page')
|
|
{{linkto ..}} -------> 资源路由 -----> '拆分重定向'
- ----------------> resource-route person
- ----------------> resource-route pet
(like a url to a frame set which bear two (or more) 'parallel' requests)
拆分重定向后,我有 3 条活动路线:
- 人的资源路线 - 宠物分配编辑器
- 资源路线人
- 资源路由宠物
之后,可以进行正常的增量钻取(更深的嵌套路线:选择一个人,选择一个宠物..)操作。
我可以在没有这样一个概念的情况下实现我的用例,但我喜欢路由概念,并且有兴趣在更复杂的场景中使用它。
是否存在这样的概念? emberjs 处理这种情况的方法是什么?
最好的问候
安德烈亚斯
【问题讨论】:
标签: ember.js routes ember-data