Ember嵌套路线不渲染模板

时间:2017-04-22 20:31:20

标签: templates ember.js routes nested request

我正在使用最新的ember-cli版本2.12.1和ember。

我已将路线配置为:

 Router.map(function() {
  this.route('companies', function() {
    this.route('companydetail', {
      path: '/:company_id'
    }, function() {
      this.route('employees', function() {
        this.route('employeedetail', {
          path: '/:employee_id'
        });
      });
    });
  });
});

模板位于

/templates/companies/index.hbs
/templates/companies/companydetail.hbs
/templates/companies/companydetail/employees/employees/employeedetail.hbs

我可以链接到路线

{{#link-to "companies.companydetail.employees.employeedetail" model employee}}Edit{{/link-to}}

这是有效的。但是模板没有渲染。     而是使用companydetail.hbs。我改变了  /routes/companies/companydetail/employees/employeedetail.js呈现正确的模板:

renderTemplate: function(params) {
    this.render('companies/companydetail/employees/employeedetail', {
      into: 'application'
    });
}

这是有效的,但是:没有完成对模型的调用(对服务器的请求)。我可以尝试手动拨打电话,但我开始相信,我在路线上做错了。

有什么建议吗?

更新: 网址为/ companies / 1 / employees / 2。当我点击链接时ember构造此URL时,不会执行对模型的请求。当我刷新浏览器页面时,会触发请求。这是一种典型的体验,因为当url没有改变时,不会触发模型调用。但奇怪的是,它改变了,仍然没有模型请求......

提前致谢, 西拉斯

1 个答案:

答案 0 :(得分:0)

使用companydetail.hbs是正确的。 employeedetail.hbs应该呈现在{{outlet}}内的companydetail.hbs中。确保{{outlet}}内有companydetail.hbs