我有一个子菜单,只有在选择主菜单中的菜单项时才会出现。我想要做的是保存子菜单的状态,以便当用户在子菜单中选择某些内容,然后在主菜单中导航时,该子菜单项在返回子菜单时仍应被选中。但是,我不知道该怎么做。有什么想法吗?
http://jsfiddle.net/martinp999/Ce5j8/2/
<script type="text/x-handlebars">
<div class="navbar">
<div class="navbar-inner">
<a class="brand" href="#/a/f">Main Menu</a>
<ul class="nav">
<li>{{#link-to 'a'}}A{{/link-to}}</li>
<li>{{#link-to 'b'}}B{{/link-to}}</li>
<li>{{#link-to 'c'}}C{{/link-to}}</li>
</ul>
</div>
</div>
{{outlet}}
</script>
<script type="text/x-handlebars" id="a">
<div class="navbar">
<div class="navbar-inner">
<a class="brand" href="#/a/f">Sub Menu A</a>
<ul class="nav">
<li>{{#link-to 'f'}}F{{/link-to}}</li>
<li>{{#link-to 'g'}}G{{/link-to}}</li>
<li>{{#link-to 'h'}}H{{/link-to}}</li>
</ul>
</div>
</div>
{{outlet}}
</script>
<script type="text/x-handlebars" id="b">
B
</script>
<script type="text/x-handlebars" id="c">
C
</script>
<script type="text/x-handlebars" id="f">
F
</script>
<script type="text/x-handlebars" id="g">
G
</script>
<script type="text/x-handlebars" id="h">
H
</script>
App.Router.map(function () {
this.resource('a', function() {
this.resource('f');
this.resource('g');
this.resource('h');
});
this.resource('b');
this.resource('c');});
答案 0 :(得分:1)
从A
路线转换时,您可以检查transition
对象,看看您要去哪里。可以存储您前往的位置(如果它是A
的子路径),然后在redirect
的{{1}}挂钩中再次使用它。
查看此更新的小提琴:http://jsfiddle.net/ahaurw01/Ce5j8/3/
答案 1 :(得分:0)
想出来。我认为ember-latest.js
指向了最新的产品发布,它实际上指向beta - 金丝雀的beta。转换对象在prod或beta中不包含handlerInfos对象,仅在canary中。