我很好地使用了角度1.5状态(嵌套状态,制表符状态,模态统计数据)
Ui-router-extras有粘性状态,但我没有看到与经典父/子状态架构的区别?
粘性状态的基本示例是我们可以做到的没有粘性的东西吗? http://plnkr.co/edit/SCHExh4DYKFd9Kq3UbaA?p=preview
如果删除sticky: true
,则会获得相同的行为
答案 0 :(得分:3)
不,不是真的。 ui-router
实际上做的是将您的应用程序转换为状态机。对状态机的严格定义是你只能在任何时间点激活一个状态。
现在,这意味着当您从stateA
转移到stateB
时,stateA
的范围(以及控制器等其他资产)将被销毁,而{{ 1}}被实例化的。从字面上看,您不能让stateB
和stateA
的控制器和范围同时处于活动状态。结论是,在严格的状态机中不允许并行(也称为粘性)状态。
stateB
让你这样做。您可以一次激活多个状态。
让我们举个例子。
ui-router-extras
。 stateA
中,您开始从100秒倒计时到0. stateA
以检索一些数据。你在stateB
花了10秒钟。 stateB
现在,正常stateA
。当您在步骤4返回ui-router
时,您的倒计时将从100秒重新开始。与粘性状态一样,你的理论从57-10 = 47秒开始。
这很重要,因为对于正常的stateA
,当您转到ui-router
时,您的stateB
范围会被销毁。转回stateA
将重新实例化一切,因此倒计时从100再次开始。如果使用粘滞状态,则会保留范围。
以下是plnkr demo与您分道扬..尝试注释掉stateA
,然后从标签1和标签2来回查看,您会发现不同之处。