多个嵌套路由内的 EmberJs 出口

EmberJs outlet inside multiple nested route

我对EmberJS中的outlets和渲染模板不是很了解。到目前为止,我一直在做大部分的 CRUD 操作,或者我的路由没有像这里那样嵌套多次,所以我还没有遇到这个问题。 在父路由中使用 {{outlet}} 就足够了。

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

我在 [twiddle]

中重新创建了我的路由结构

有人可以给我解释一下吗?

嵌套路由总是有嵌套模板。要解决此问题,您可以使用 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 不存在),则与只有 [=15] 的 .hbs 文件相同=]里面