在我的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>
答案 0 :(得分:4)
此处的问题是您要关联到about.philosophy
,因此当您导航到about.leadership
时,将不会应用活动课程。
所以让你的link-to
指向about
路线,
{{#link-to "about"}}ABOUT{{/link-to}}
从您的about.index
路线,重定向到about.philosophy
路线,
因此,只要您处于about
路线的孩子,活动课程就会始终应用于link-to
的{{1}}。
为您的案件bin。