我的网站(还没有上线)使用了angularjs路由。当一个页面着陆时,基于快速的条件检查,它会将我们路由到第二个页面。路由发生得非常快,浏览器不存储第一页的历史。我们还启用了后退按钮功能,由于历史记录未存储,因此无法使用。此外,第一页上有几个外部链接,需要几秒钟才能加载。因此,当这些外部链接加载时,第一页出现,条件被检查并路由到第二页。对于强制浏览器记录第一页的历史记录,有什么想法或解决方案吗?
其他关于此的想法:有没有什么解决方案,使第一页等待所有的外部链接完全加载,然后做路由?
我在Google上搜索过,但还没有找到解决方案。任何形式的帮助都非常感谢。
2条答案
按热度按时间v8wbuo2f1#
导航历史记录需要实现一个
StateHistory
服务,该服务需要有将状态添加到私有Array中的方法,比如getPreviusState()
然后,您可以在
$stateChangeSuccess
事件上添加每个状态(使用angular ui-router)资源加载时导航使用
$http
获取资源(html或其他),使用callback
向前导航。$http documentation
eoxn13cs2#
Angular的**$location.replace()最终实现了这一点。
以前我使用的是$location.url('/somepath')**,它只是重定向到我的浏览器主页,而不是保存第一页的历史记录。