簡體   English   中英

在Ember.js 2中的車把模板上獲取當前路線名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM