所以我有一个我在Emberjs建立的常规网站。现在我想为应用添加管理员。我面临的问题是该应用的标头位于application.hbs
,但对于管理员,我希望标头不同。标题需要留在application.hbs
,因为网址需要/about
而不是user/about
或者我可以创建的路线。我尝试将标题作为一个组件并将其添加到有效的路由,但由于标题从路由离开到路由,它会丢失webapp感觉。有没有办法让我不在管理员中扩展应用程序模板?
答案 0 :(得分:0)
据我了解您的问题,您正在寻找具有管理和非管理路由的不同标头,而不将标头转换为组件。如果是这样,那么你可以通过在应用程序把手中使用一个标志来表示," isAdmin"。例如:
在application.hbs
中{{#if isAdmin}}
<h2>Header for Admin Route</h2>
<button {{action "goToApp"}}> Go To Application </button>
{{outlet "admin"}}
{{else}}
<h2>Header for Application Routes</h2>
<button {{action "goToAdmin"}}> Go To Admin Panel </button>
{{outlet "app"}}
{{/if}}
这里&#34; isAdmin&#34;将是&#34; ApplicationController&#34;中的属性。并且,您可以在&#34;激活&#34;内部设置此标志。和#34;停用&#34;路线的处理者。
在路线/ admin.js
中 activate: function () {
this.controllerFor("application").set("isAdmin", true);
},
deactivate: function () {
this.controllerFor("application").set("isAdmin", false);
},
renderTemplate: function () {
this.render({
outlet: "admin"
});
}
使用JSBIN:http://jsbin.com/yilipa/edit?html,js,output
我希望这符合您的要求。如果我误解了你的问题,请纠正我。