[英]Get current route name on handlebar template in Ember.js 2
我需要知道当前的路由名称,以便显示或隐藏在application.hbs
上创建的全局组件。
该组件应该仅隐藏在一个路由模板中,因此这对我来说似乎是更简单的解决方案。 获取当前路线名称,如果其名称等于“ posts”,则不会显示header-bar
组件。
像这样:
{{#if currentRoute != 'login'}}
{{header-bar}}
{{/if}}
{{outlet}}
关于实现此目标或解决问题的类似方法的任何想法?
applicatiion
控制器具有属性名称currentRouteName
。 您可以使用它。
如果要在另一个模板中使用,则需要在控制器中定义它。
test.js(控制器)
init(){
this._super(...arguments);
let appCtrl = Ember.getOwner(this).lookup('controller:application');
this.set('appCtrl', appCtrl);
}
test.hbs
{{appCtrl.currentRouteName}}
答案与Ebrahim Pasbani相同。
此语法在最新的Ember版本中仍然可用:
App.__container__.lookup('controller:application').currentRouteName;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.