活动类不在嵌套路由中工作

时间:2013-09-09 18:00:48

标签: ember.js

在我的application.hbs文件中,我有一个应用程序范围的导航栏。

<div class="row nav">
<div class="large-12 colummns">
    <ul class="inline-list top-nav">
            <li><h6>{{#linkTo "about.philosophy"}}ABOUT{{/linkTo}}</h6></li>
            <li><h6>//</h6></li>
            <li><h6>CONDITIONS</h6></li>
            <li><h6>//</h6></li>
            <li><h6>PROGRAMS</h6><li>
            <li><h6>//</h6></li>
            <li><h6>TESTIMONIALS</h6></li>
   </ul>
</div>
</div>
<div class="row subnav">
    <div class="large-12 colummns">
      {{#if renderAboutSubNav}}
        {{render 'about/subnav'}}
      {{/if}}
  </div>
</div>
{{outlet}}

subnav.hbs:

<ul class="inline-list subnav-list">
  <li class="subnav-item">{{#linkTo "about.philosophy"}}philosophy{{/linkTo}}</li>
  <li class="subnav-item">//</li>   
  <li class="subnav-item">{{#linkTo "about.leadership"}}leadership{{/linkTo}}</li>
  <li class="subnav-item">//</li> 
  <li class="subnav-item">staff</li>
</ul>

单击“关闭”链接会显示一个子窗口 - 只要网址包含“关于”,就会显示该子窗口。在那个subnav是关于子页 - 哲学,领导,工作人员。哲学实际上是about部分的索引页面,这就是为什么我将ABOUT链接到about.philosophy:

{{#linkTo "about.philosophy"}}ABOUT{{/linkTo}}

当我点击ABOUT时,ember app会按原样渲染/ about / philosophy,并且subnav中的ABOUT链接和哲学链接被设置为活动状态。

然而,当我点击'Leadership'时,subnav上的领导链接是活动的,但不是主nav中的ABOUT链接,即使url读取/ about / leadership。

我不明白为什么会这样做。

我的路由器看起来像这样:

Ew.Router.reopen(location: 'history')

Ew.Router.map ->
@.resource "about", ->
    @.route "philosophy"
    @.route "leadership"
    @.resource "staff"
@.route "conditions"
@.route "programs"
@.route "testimonials"

about.hbs:

<div class="row about-bg">
<div class="large-12 columns">
    <div class="row">
        <h1 class="about-phil">Eskridge & White</h1>
  </div>
</div>
</div>
<div class="row philosophy-content">
<div class="large-9 columns about-us">
{{outlet}}
</div>
</div>
<div class="large-3 columns sidebar">
    {{partial 'sidebar'}}
</div>
</div>

1 个答案:

答案 0 :(得分:4)

此处的问题是您要关联到about.philosophy,因此当您导航到about.leadership时,将不会应用活动课程。

所以让你的link-to指向about路线,
{{#link-to "about"}}ABOUT{{/link-to}}

从您的about.index路线,重定向到about.philosophy路线,
因此,只要您处于about路线的孩子,活动课程就会始终应用于link-to的{​​{1}}。

为您的案件bin