子状态和粘性状态有什么区别?
what's the difference between child state and sticky state?
我很好地使用了 angular 1.5 状态(嵌套状态、选项卡状态、模态统计)
Ui-router-extras 具有 粘性状态 ,但我看不出与经典 parent/child 状态架构的区别?
sticky 状态的基本示例是我们可以在没有 sticky 的情况下做什么?
http://plnkr.co/edit/SCHExh4DYKFd9Kq3UbaA?p=preview
如果您删除 sticky: true
,您会得到相同的行为
不,不是真的。 ui-router
所做的实际上是将您的应用程序转换为状态机。状态机的严格定义是 在任何时间点只能激活一个状态。
现在这意味着每当你从 stateA
过渡到 stateB
时,stateA
的范围(以及控制器等其他资产)将被销毁,而 stateB
正在实例化。所以从字面上看,您不能同时激活 stateA
和 stateB
的控制器和范围。结论是,在严格的状态机中不允许并行(也称为粘性)状态。
ui-router-extras
让你来做吧。您可以同时激活多个状态。
让我们举个例子。
- 你先去
stateA
。
- 在
stateA
,您开始从 100 秒倒数到 0。
- 第 57 秒进行到一半时,您转到
stateB
检索一些数据。您在 stateB
上花费了 10 秒。
- 你回到
stateA
现在,正常 ui-router
。当您在第 4 步返回 stateA
时,您的倒计时将从 100 秒重新开始。与粘性状态一样,倒计时从 57-10 = 47 秒开始。
这很重要,因为对于正常的 ui-router
,当您转换到 stateB
时,您的 stateA
的范围将被破坏。返回 stateA
将 re-instantiate 一切,因此倒计时再次从 100 开始。如果您使用粘性状态,则范围会保留。
这是从你的 plnkr demo 分叉出来的。尝试注释掉 sticky:true
,然后从 tab1 和 tab 2 来回切换,您会看到不同之处。
我很好地使用了 angular 1.5 状态(嵌套状态、选项卡状态、模态统计)
Ui-router-extras 具有 粘性状态 ,但我看不出与经典 parent/child 状态架构的区别?
sticky 状态的基本示例是我们可以在没有 sticky 的情况下做什么? http://plnkr.co/edit/SCHExh4DYKFd9Kq3UbaA?p=preview
如果您删除 sticky: true
,您会得到相同的行为
不,不是真的。 ui-router
所做的实际上是将您的应用程序转换为状态机。状态机的严格定义是 在任何时间点只能激活一个状态。
现在这意味着每当你从 stateA
过渡到 stateB
时,stateA
的范围(以及控制器等其他资产)将被销毁,而 stateB
正在实例化。所以从字面上看,您不能同时激活 stateA
和 stateB
的控制器和范围。结论是,在严格的状态机中不允许并行(也称为粘性)状态。
ui-router-extras
让你来做吧。您可以同时激活多个状态。
让我们举个例子。
- 你先去
stateA
。 - 在
stateA
,您开始从 100 秒倒数到 0。 - 第 57 秒进行到一半时,您转到
stateB
检索一些数据。您在stateB
上花费了 10 秒。 - 你回到
stateA
现在,正常 ui-router
。当您在第 4 步返回 stateA
时,您的倒计时将从 100 秒重新开始。与粘性状态一样,倒计时从 57-10 = 47 秒开始。
这很重要,因为对于正常的 ui-router
,当您转换到 stateB
时,您的 stateA
的范围将被破坏。返回 stateA
将 re-instantiate 一切,因此倒计时再次从 100 开始。如果您使用粘性状态,则范围会保留。
这是从你的 plnkr demo 分叉出来的。尝试注释掉 sticky:true
,然后从 tab1 和 tab 2 来回切换,您会看到不同之处。