EmberJs出口在多个嵌套路线内

时间:2019-03-27 16:47:01

标签: ember.js ember-cli

我不严格理解EmberJS中的插座和渲染模板。到现在为止,我主要进行CRUD操作,或者我的路由没有被嵌套那么多次,所以我还没有遇到这个问题。 在父级路由中使用{{outlet}}就足够了。

问题来自于我以前的方法。 当我确实访问routes admin/*时一切正常,但是当我尝试进入例如admin/organization/{id}/user呈现了一个admin/organization模板,这是我想要避免的。 我想可以使用renderTemplate(内部的route.js)函数来完成这些操作,但是我无法弄清楚这些事情。

我在[twiddle]中重新创建了路线结构

有人可以告诉我吗?

1 个答案:

答案 0 :(得分:4)

嵌套路由始终具有嵌套模板。要解决此问题,您可以利用index路由,该路由默认情况下存在于每个级别上。模板的结构如下:

-app
--templates
---admin
----organization
-----index.hbs //template for admin/organization/index route, url: /admin/organization
-----user.hbs //template for admin/organization/user route, url: /admin/organization/user
----index.hbs //template for admin/index route, url: /admin

请注意,如果某些模板文件不存在(在我的示例中app/templates/admin.hbsapp/templates/admin/organization.hbs不存在),则与仅包含.hbs的{​​{1}}文件相同在里面