2016-07-06 71 views
2

我需要知道當前的路由名,以便我可以顯示或隱藏在我的application.hbs上創建的全局組件。在Ember.js中獲取車把模板中的當前路徑名2

這個組件應該隱藏在一個路由模板中,所以這看起來對我來說更容易。獲取當前的路由名稱,如果其等於「帖子」,則不會顯示header-bar組件。

事情是這樣的:

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

{{outlet}} 

上,我可以做到這一點或類似的東西,解決我的問題你知道嗎?

回答

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}} 
+0

謝謝您的回答。我相關的知道ember.js,你會好心給我更多的解釋如何在handlebars模板上使用currentRouteName?再次感謝。 – rafamds

+0

@rafaelmsantos'{{#如果currentRouteName = '登錄'}!} {{標題欄}} {{/ if}個} {{出口}}' –

+0

這給了我一個生成錯誤:/ – rafamds

0

相同的答案的Ebrahim Pasbani。

這句法仍然在最新版本的灰燼可用:

App.__container__.lookup('controller:application').currentRouteName; 
+2

其私有API,請不要使用它。 – kumkanillam