在Ember.js 2中获取车把模板上的当前路线名称

时间:2016-07-06 11:59:39

标签: javascript ember.js handlebars.js

我需要知道当前的路线名称,以便显示或隐藏在application.hbs上创建的全局组件。

此组件应仅隐藏在一个路径模板中,因此这对我来说似乎更容易解决。获取当前路由名称,如果它等于“发布”,则不会显示header-bar组件。

这样的事情:

{{#if currentRoute != 'login'}}
    {{header-bar}}
{{/if}}

{{outlet}}

我是否有任何想法可以实现这个或类似的东西来解决我的问题?

2 个答案:

答案 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;