2013-07-25 24 views
2

我希望只能在我的一些路線上顯示側邊欄。如何能夠做到這樣的事:Ember.js - 如何根據當前路線隱藏部分?

<div class="container"> 
    <div id="ember-app"> 
     <script type="text/x-handlebars"> 
      // if currentRoute == /something, then show this: 
      <div class="row"> 
       {{partial sidebar}} 
       <div class="span9 offset3 user-feed"> 
        {{outlet}}  
       </div> 
      </div> 
      // else, show this: 
      {{outlet}} 
      // endif 
     </script> 
    </div> 
</div> 

<script type="text/x-handlebars" data-template-name="_sidebar"> 
    // Sidebar code here ... 
</script> 

所以,當我訪問/#/這是我應該看到側邊欄,但在所有航線上,我不應該。

回答

3

您可以觀察currentPath屬性以使當前路由與Regex匹配。

App.ApplicationController = Ember.Controller.extend({ 
showSidebar: function(){ 
    var routes_array = ['two','four'], 
    currentPath = this.get('currentPath'), 
    filteredArray, showSideBar = false; 

    routes_array.forEach(function(itm){ 
    var tab = new RegExp('^'+itm+'*'); 
    if(!Em.isEmpty(currentPath.match(tab))) 
    showSideBar = true; 
    }); 
    return showSideBar; 
}.property('currentPath') 
}); 

Just a simple try Here

+0

我不知道你的路線名稱和您的正則表達式匹配可以按照你的路線名稱 – selvagsz

+0

現在做工精良。謝謝! – EsTeGe

1

一個簡單的解決方法可能是使用引號諧音的說法?

{{partial 'sidebar'}}