我希望只能在我的某些路线上显示侧边栏。我怎样才能实现这样的目标:
<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>
所以,当我访问/#/某些东西时,我应该看到侧边栏,但在所有其他路线上,我不应该。
答案 0 :(得分: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')
});
答案 1 :(得分:1)
一个简单的修复可能是使用带引号的partials参数?
{{partial 'sidebar'}}