我没有严格理解EmberJS中的插座和渲染模板。到目前为止,我一直在做CRUD操作,或者我的路线没有像这里那样多次嵌套,所以我还没有遇到过这个问题。在父路线中使用{{outlet}}
就足够了。
问题出在我以前的方法上。当我访问routes admin/*
时,一切正常,但当我试图进入例如admin/organization/{id}/user
它呈现了我想要避免的admin/organization
模板。我想这些事情可以在renderTemplate(
中使用route.js
函数来完成,但我无法解决这些问题。
我在[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.hbs
中,app/templates/admin/organization.hbs
不存在),它与.hbs
文件相同,其中只有{{outlet}}