我需要知道当前的路线名称,以便显示或隐藏在application.hbs
上创建的全局组件。
此组件应仅隐藏在一个路径模板中,因此这对我来说似乎更容易解决。获取当前路由名称,如果它等于“发布”,则不会显示header-bar
组件。
这样的事情:
{{#if currentRoute != 'login'}}
{{header-bar}}
{{/if}}
{{outlet}}
我是否有任何想法可以实现这个或类似的东西来解决我的问题?
答案 0 :(得分:3)
applicatiion
控制器具有属性名称currentRouteName
。你可以使用它。
如果要在另一个模板中使用,则需要在控制器中定义它。
test.js(控制器)
init(){
this._super(...arguments);
let appCtrl = Ember.getOwner(this).lookup('controller:application');
this.set('appCtrl', appCtrl);
}
test.hbs
{{appCtrl.currentRouteName}}
答案 1 :(得分:0)
与Ebrahim Pasbani相同的答案。
此语法仍可在最新的Ember版本中使用:
App.__container__.lookup('controller:application').currentRouteName;