0

我有一个子菜单,只有在选择主菜单中的菜单项时才会出现。我想要做的是保存子菜单的状态,以便当用户在子菜单中选择某些内容,然后在主菜单中导航离开时,当他们返回子菜单时仍应选择该子菜单项。但是,我不知道该怎么做。有任何想法吗?

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');});
4

2 回答 2

1

A路线转换时,您可以检查transition对象并查看您要去的地方。可以存储您要去的位置(如果它是 的子路线A),然后redirectAIndexRoute.

看看这个更新的小提琴:http: //jsfiddle.net/ahaurw01/Ce5j8/3/

于 2013-10-18T18:47:09.133 回答
0

弄清楚了。我认为这ember-latest.js指向了最新的生产版本,它实际上指向了 beta 的 beta - canary。过渡对象在 prod 或 beta 中不包含 handlerInfos 对象,仅在 canary 中。

于 2013-10-21T22:41:43.010 回答