小编给大家分享一下AngularJs如何实现返回前一页面时刷新一次前面页面,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
要求:
页面A进入到页面B,在页面B处理完后返回页面A,页面A里的数据应该动态的减去一条,但由于一般情况下页面是缓存起来的,返回A后读取的是缓存静态页面,里面显示的数据不会减少。应客户要求,需要重新加载一次数据,达到页面A可以刷新数据目的。
研究过程:
从网上寻找发现,有一个方法可以获取到当前页面的URL:$location
以 ‘http://localhost/$location/21.1%20$location.html#/foo?name=bunny#myhash' 这个路径为例:
1. 获取当前完整的url路径:
$location.absUrl(): // http://localhost/$location/21.1%20$location.html#/foo?name=bunny#myhash
2. 获取当前url路径(当前url#后面的内容,包括参数和哈希值):
$location.url(); // /foo?name=bunny#myhash
3. 获取当前url的子路径(也就是当前url#后面的内容,不包括参数):
$location.path() // /foo
4. 获取当前url的协议(比如http,https)$location.protocol()
$location.protocol() // http
5. 获取当前url的主机名
$location.host() // localhost
6. 获取当前url的端口
$location.port() // 80 (这里就是wamp的默认端口号)
获取到当前页的URL后,把它赋给全局变量,当URL变化时,刷新前一页面即可
parent.location.reload(); //该方法可用于刷新前面所以页面
之后继续在网上找有没有更好的办法,发现了一个可以直接使用的方法:
这两个事件分别发生在当url开始发生改变,以及url改变完成.他们都被绑定在$rootScope里面:
$rootScope.$on('$locationChangeStart',function(){ console.log('开始改变$location') }); $rootScope.$on('$locationChangeSuccess',function(){ console.log('结束改变$location') });
之后写进代码里做了验证,验证结果可用。写法为:
$rootScope.$on('$locationChangeSuccess',function(){//返回前页时,刷新前页 parent.location.reload(); });
以上是“AngularJs如何实现返回前一页面时刷新一次前面页面”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。