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

来源:互联网 发布:安卓软件中心 编辑:程序博客网 时间:2024/05/21 09:26

一个不得不说的项目之坑。先描述问题,用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。这样这个问题才解决了。

阅读全文
0 0
原创粉丝点击