html5 - angularjs 中 后退按钮点击总是回到最后一次刷新的页面问题

查看:129
本文介绍了html5 - angularjs 中 后退按钮点击总是回到最后一次刷新的页面问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

访问http://localhost/index
在index页面中点击导航的链接链接跳转到http://localhost/a
然后在a页面中点击导航的链接链接跳转到http://localhost/b
按道理说现在浏览器就会记录了3个历史了,但是这个时候点击浏览器的后退按钮,页面就回到http://localhost/index

再操作一次,进入到a页面的时候刷新,之后再点击b页面和c页面还有d页面,这个时候历史记录应该保存了

    ['index', 'a', 'b', 'c', 'd']

此时在d页面,点击后退按钮后,就回到了a页面,而中间的b页面和c页面都没办法通过后退按钮回去了。
现在的情况就像是浏览器记录了刷新的页面历史记录,其他的页面都没有记录的感觉。所以点击后退按钮就只能回到刷新的那个页面,而且前进按钮是灰色的。。
这是怎么回事?angular怎么没办法后退或者前进了?

解决方案

经过测试。。找到问题所在了。。
在整个网页app中bootstrap了两次不同module,估计前一个module也是监听路由,导致根据后面的module的路由出现了无法后退的问题。

    //为了优化体验,一开始使用了一个module负责显示加载中
    angular.bootstrap(loadingDiv,['loadingM']);
    
    //然后当负责主要内容的module加载玩之后再启动
    mainM.then(function ()
    {
        angular.bootstrap(mainDiv,['mainM']);
        loadingDiv.hide();
    })

这样angular.bootstrap调用了两次就出现了这个无法后退的问题了。。
但是具体为什么这样就会产生无法后退的问题就不清楚了。。。

只能之后注意点,一个项目只能调用一次angular.bootstrap

这篇关于html5 - angularjs 中 后退按钮点击总是回到最后一次刷新的页面问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆