我想同时使用父路线的模型和子路线的子路线模型。不确定“Ember方式”可以解决这个问题。
更具体一点:
父路线有组模型,动态路线为 groups /:group_id
每个组适用于多个单元。在上面的组路线模板中,会显示单位列表,每个单元都带有指向相关子路线的链接, groups /:group_id / unit /:unit_id 。此路由的模型是单元,通过将单元作为参数传递到父路由模板中的链接到帮助程序来设置。
问题在于,除了单元模型之外,我还需要能够从组/:group_id / unit /:unit_id 路径中访问父模型 - 组
它也是一种单向关系。虽然一个小组有几个单位,但任何其他小组也可能有任意数量的单位,所以我不能使用这种关系。
我可能会设置一个哈希来返回子route.js中的两个模型,但是如果模型是通过link-to传递的,则不会执行模型钩子。坚持到底如何做到这一点。 或者另一种方法是从子控制器访问父控制器,但不确定正确的方法。
由于
答案 0 :(得分:0)
感觉不太对劲,但我通过注入父控制器解决了这个问题。
我已经在 groups /:group_id / unit /:unit_id 控制器中使用了此功能。
import Ember from 'ember';
export default Ember.Controller.extend({
groupController: Ember.inject.controller('groups.group'),
group: Ember.computed(function(){
return this.get('groupController').get('model');
}),
});
尽管如此,我觉得应该有更好的方法。
我想:
理想情况下,我想在路线中重新打开模型,并将父模型与子模型一起散列。
或者,我希望能够以与路径中的modelFor类似的方式从子控制器访问父模型。
其中任何一个都允许我使用URL中的动态段。