2

我希望能够只在我的一些路线上显示一个侧边栏。我怎样才能实现这样的目标:

<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>

因此,当我访问 /#/something 时,我应该看到侧边栏,但在所有其他路线上,我不应该看到。

4

2 回答 2

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')
});

只是一个简单的尝试在这里

于 2013-07-25T11:45:47.360 回答
1

一个简单的解决方法可能是使用带引号的 partials 参数?

{{partial 'sidebar'}}
于 2014-12-02T23:01:14.207 回答