Angular UI-Router嵌套标签,切换并切换回我们停止的位置

时间:2014-04-22 03:37:00

标签: angularjs angular-ui-router

请查看this Plunk

  1. 点击“左”
  2. 点击“链接2”将其展开
  3. 点击“右”
  4. 点击“左” - 链接2不再展开
  5. 问题:当我们选择离开它然后返回时,左侧标签如何“记住”显示“链接2”? (当然,我也希望在右侧选项卡上执行此操作)

    请注意,我不想以任何方式破解官方的Angular(UI-Router等)代码。

    此外,我希望链接1在第一次显示或选择左侧时默认展开(在右侧具有类似的默认值)。但这可能是一个单独问题的主题?

1 个答案:

答案 0 :(得分:1)

你可以很容易地做到这一点。

为同一级别的每个标签设置单独的状态

1)在$rootScope上注册$ stateChangeSuccess侦听器。如果要状态为.includes("left").includes("right"),请跟踪目标状态及其状态。

2)在$rootScope上注册$ stateChangeStart监听器。如果要状态为.is("left").is("right"),请阻止直接转换为制表符状态,然后使用$state.go添加您之前为该标签保存的状态/参数。

看看我实现这个的ui-router fork。我称之为“深度状态重定向”。 https://github.com/christopherthielen/ui-router/blob/issue-894/src/parallelState.js#L32

我做了一个plunk并将范围监听器和注册表从我的fork集成到plunk中的根范围。看看:http://plnkr.co/edit/2EDS21yD6ygI5nHMFu0H?p=preview