Ember在嵌套路线中切换导航

时间:2014-04-08 01:39:28

标签: ember.js

我有一个顶部导航栏,我在应用程序模板中调用它作为部分。

{{partial "topnav"}}
{{outlet}}

我想在我的一个嵌套路线中删除下游的顶部导航。我该怎么做?

澄清

  • 我不想切换导航,我希望它永远不会在下游路线中渲染。
  • 我希望解决方案可以使用多条路线。

3 个答案:

答案 0 :(得分:4)

Ember将应用ApplicationController上的当前路线名称和路径设置为属性currentRouteNamecurrentPath

所以在你的ApplicationController中,你可以创建一个这样的计算属性:

isCurrentRouteX: Ember.computed.equal('currentRouteName', 'X');

其中X是您要排除部分的路线。

最后,在您的application.hbs中,您可以直接执行此操作:

{{#unless isCurrentRouteX}}
  {{partial "topnav"}}
{{/unless}}
{{outlet}}

答案 1 :(得分:1)

在应用程序路径中创建一个操作,该操作切换应用程序控制器上的属性,该属性控制是否显示部分属性。

以下是一个例子:

http://emberjs.jsbin.com/bososaga/1/edit

答案 2 :(得分:0)

这就是你要关闭topnav的路线:

beforeModel: ->
    this.controllerFor('application').toggleProperty('topNav')

然后在应用程序控制器中定义一个属性:

topNav: true
你在模板中引用的

是这样的:

{{#if topNav}}
  {{partial "topnav"}}
{{/if}}
{{outlet}}