请查看this Plunk
问题:当我们选择离开它然后返回时,左侧标签如何“记住”显示“链接2”? (当然,我也希望在右侧选项卡上执行此操作)
请注意,我不想以任何方式破解官方的Angular(UI-Router等)代码。
此外,我希望链接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