Angularjs 什么';子状态和粘滞状态之间的区别是什么?
我很好地使用了角度1.5状态(嵌套状态、选项卡状态、模态状态) Ui路由器extras有粘性状态,但我看不出与经典的父/子状态架构有什么区别 粘性状态的一个基本例子是我们可以不用粘性来做什么?Angularjs 什么';子状态和粘滞状态之间的区别是什么?,angularjs,angular-ui-router,angular-ui-router-extras,Angularjs,Angular Ui Router,Angular Ui Router Extras,我很好地使用了角度1.5状态(嵌套状态、选项卡状态、模态状态) Ui路由器extras有粘性状态,但我看不出与经典的父/子状态架构有什么区别 粘性状态的一个基本例子是我们可以不用粘性来做什么? 如果删除粘性:true,则会得到相同的行为不,不是真的。实际上,ui路由器将你的应用程序转换成一个状态机。状态机的严格定义是,在任何时间点,只能有一个状态处于活动状态 这意味着,无论何时从stateA过渡到stateB,stateA的范围(以及控制器等其他资产)将被销毁,而stateB的范围将被实例化。
如果删除粘性:true,则会得到相同的行为不,不是真的。实际上,
ui路由器
将你的应用程序转换成一个状态机。状态机的严格定义是,在任何时间点,只能有一个状态处于活动状态
这意味着,无论何时从stateA
过渡到stateB
,stateA
的范围(以及控制器等其他资产)将被销毁,而stateB
的范围将被实例化。因此,从字面上讲,您不能同时激活stateA
和stateB
的控制器和作用域。结论是,在严格的状态机中不允许存在并行(即粘性)状态
ui路由器附加功能
让我们来做这个。一次可以有多个状态处于活动状态
让我们来看一个示例场景
stateA
李>
stateA
中,您开始从100秒倒计时到0秒李>
stateB
以检索一些数据。您在stateB
上花费10秒钟李>
stateA
ui路由器
。当您在第4步返回到状态a
时,您的倒计时将从100秒开始重新开始。其中,与粘性状态一样,您的下降从57-10=47秒开始
这一点很重要,因为对于正常的ui路由器
,当您传输到stateB
时,您的stateA
的作用域将被破坏。返回到stateA
将重新实例化所有内容,因此再次从100开始倒计时。如果您使用的是粘性状态,则会保留作用域
这是你的叉子。尝试注释出sticky:true
,然后从选项卡1和选项卡2来回切换,您将看到差异