我不严格理解EmberJS中的插座和渲染模板。到现在为止,我主要进行CRUD操作,或者我的路由没有被嵌套那么多次,所以我还没有遇到这个问题。
在父级路由中使用{{outlet}}
就足够了。
问题来自于我以前的方法。
当我确实访问routes admin/*
时一切正常,但是当我尝试进入例如admin/organization/{id}/user
呈现了一个admin/organization
模板,这是我想要避免的。
我想可以使用renderTemplate(
内部的route.js
)函数来完成这些操作,但是我无法弄清楚这些事情。
我在[twiddle]中重新创建了路线结构
有人可以告诉我吗?
答案 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.hbs
,app/templates/admin/organization.hbs
不存在),则与仅包含.hbs
的{{1}}文件相同在里面