我正在使用 ui-router 1.0.0-beta.3,角度 1.5。到目前为止,ui-router 很棒!
我有一个根状态,到目前为止还有一些子状态,但我注意到在兄弟姐妹(同一个根父级的孩子)之间切换会导致完全重新创建我转换/进入的状态。
我想保留范围变量,因为在我的应用程序中,用户可能会切换一些按钮,输入日期等,然后可能会切换到另一个状态,做某事,然后切换回来,但现在他们所有的部分工作都消失了。我还希望能够为“非活动”状态销毁 DOM,因为实际上某些状态可能会变得非常大,或者用户可能会创建大量 DOM,所以我希望尽可能保持 DOM对于某些州。
我知道 ui-router-extras 粘性状态功能正是这个!当我想在某些组件上销毁 DOM 时,我可以使用 $state.includes 函数来定位。但是,ui-router-extras 似乎不适用于 ui-router 1.0.0-beta.3。作者确实为较新的 ui-router 做了一个移植,但该版本是在 typescript 中的,我不知道如何将它编译成一个 js 文件。见:https ://github.com/ui-router/sticky-states/issues/4
也许我需要一个不使用粘性状态的解决方案——有什么想法吗?我正在考虑使用服务来缓存范围值,并且确实阅读了其他一些针对该影响的 SO 答案。这意味着,对于每个组件,我需要处理要缓存的范围值等。这绝对是一种可能性,但我想知道是否有人对 ui-router 有任何其他技术或知识,这样也许还有另一种方法完成我所追求的:缓存控制器/范围变化。