我已经嵌套了这样的路由器设置:
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的新手并且正在尝试。感谢您的回复。
答案 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}}