灰烬 - 访问子路径控制器中的父模型

时间:2017-07-28 14:33:59

标签: ember.js

我想同时使用父路线的模型和子路线的子路线模型。不确定“Ember方式”可以解决这个问题。

更具体一点:

父母

父路线有模型,动态路线为 groups /:group_id

孩子

每个适用于多个单元。在上面的组路线模板中,会显示单位列表,每个单元都带有指向相关子路线的链接, groups /:group_id / unit /:unit_id 。此路由的模型是单元,通过将单元作为参数传递到父路由模板中的链接到帮助程序来设置。

问题

问题在于,除了单元模型之外,我还需要能够从组/:group_id / unit /:unit_id 路径中访问父模型 - 组

它也是一种单向关系。虽然一个小组有几个单位,但任何其他小组也可能有任意数量的单位,所以我不能使用这种关系。

我可能会设置一个哈希来返回子route.js中的两个模型,但是如果模型是通过link-to传递的,则不会执行模型钩子。坚持到底如何做到这一点。 或者另一种方法是从子控制器访问父控制器,但不确定正确的方法。

由于

1 个答案:

答案 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');
    }),
});

尽管如此,我觉得应该有更好的方法。

我想:

  1. 理想情况下,我想在路线中重新打开模型,并将父模型与子模型一起散列。

  2. 或者,我希望能够以与路径中的modelFor类似的方式从子控制器访问父模型。

  3. 其中任何一个都允许我使用URL中的动态段。