素材巴巴 > 程序开发 >

ui-route子路由切换重复点击不重新加载问题

程序开发 2023-09-04 08:24:38

一个不得不说的项目之坑。先描述问题,用angular框架做的项目,路由用的ui-router。奇怪的是进入一个路由之后,再重复点击当前路由对应菜单,这个路由对应的html、js并不会重新加载,连缓存都不取,是压根儿没反应。angular也用了好久了,说实话这个问题一直没遇到过,其实不是遇到,应该说是没发现。

经过多次试验和百度,我自己找到两个损招,就分享一下,项目上还是不要用了,太损了。实验中发现当前路由如果切换到其他路由,在进入就可以重新加载。基于这一点,我心生邪念,想了个损招。

在每次点击菜单切换路由时,先切到一个没有实际意义的路由,我叫它假路由。假路由对应一个空页面,这个空页面init时再跳回实际上想去的路由。这种办法依次点击菜单操作要跳两个路由,太恶毒。



第二个办法是把菜单放到最外层ui-view外面,这样每个页面都会看到菜单,如果有的页面不想展示还需要手动隐藏,这样感觉ui-route路由嵌套就废了,这招我也不能接受。

再后来上git发现$state有个reload可以解决,具体写法如下

$scope.go=function(){$state.reload($state.current.name);//$state需要注入$state.go(url, params);
 }
然而,这样写了之后我的项目依然没有达到我的预期,我开始怀疑人生,后面和部门同事探讨了一下,感觉有可能是ui-route版本可能有问题,然后就换了一个版本

https://cdn.bootcss.com/angular-ui-router/0.4.3/angular-ui-router.js。 这样这个问题才解决了。


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。