嵌套路由器返回父级

时间:2015-01-07 17:58:15

标签: ember.js

我已经嵌套了这样的路由器设置:

this.resource('companies', function() {
    this.resource('company', {path:':company_id'}, function() {
        this.resource('employees', {path:'employees/:company_id'});
    });
});

当我点击链接到公司然后链接到员工时,没关系。除非我先转到另一家公司(id),否则如果我再次点击链接到同一家公司,它就不会显示公司。

所以基本上第一次我去/公司,它列出了公司,每个公司都有两个链接,一个到/ companies / 1,其他到/ companies / 1 / employees / 1,如果我搬到/ companies / 1 / employees / 1,然后回到/ companies / 1,它不再渲染,除非我先去/ companies / 2,然后转移到/ companies / 1会出现。如果我在同一家公司" id"路径。

我已将其设置为公司和员工使用相同的插座,除此之外一切正常。

我在模板中为每个项目设置了两个链接,如下所示:

{{#link-to 'company' this}}View Details: {{name}}{{/link-to}}
{{#link-to 'employees' id}}Employees{{/link-to}}

我不确定问题是什么,因为我是Ember.js的新手并且正在尝试。感谢您的回复。

1 个答案:

答案 0 :(得分:0)

您不需要再次将company.id传递给嵌套路由,因为它是嵌套的,这意味着父模型已经解析,您可以使用modelFor内的this.resource('companies', function() { this.resource('company', {path:':company_id'}, function() { this.resource('employees'); }); }); // routes/employees.js export default Ember.Route.extend({ model: function() { var company = this.modelFor('company'); return Ember.$.getJSON(employees_url + '?company=' + company.get('id')); } }); 访问它员工路线:

{{1}}