如何使用 ui-router 从 URL 解析状态?

How to resolve a state from URL using ui-router?

如果我有这样的东西:

{ui-sref="tab({tabid:3})"}

单击具有上述属性的元素将触发 URL 类似 /tab/:tabid.

的状态

例如,http://..../tab/3

现在我的问题:

我有一个使用 angular-material 实现的选项卡列表。参考这个 plunk

当我点击 Tab1 时,状态是 /tab/1。当我点击 Tab2 时,状态为 /tab/2。所有这些状态变化都是通过点击发生的。但是现在,如果我手动更改 URL,假设我在地址栏中键入 http://..../tab/3,我希望发生相应的状态更改并且应该激活 Tab3。目前,假设我在 Tab3 上,我手动将 URL 更改为 '..../tab/2',它不会激活 Tab2,尽管状态已更改。

是否有通过考虑状态参数从 URL 解析状态的简单方法?

这里主要关注的是制表符的使用。第一个选项卡属于一个状态,其余选项卡属于另一个状态,每个选项卡由一个 ID 唯一标识,该 ID 可通过状态参数获得。因此,尽管在我手动更改 URL 时解决了正确的状态,但正确的选项卡并未激活。最简单的解决方法是使用 $stateParams 读取状态参数并设置 angular-material 的 md-selected 属性以激活相应的选项卡。