我有一个单页角度应用程序,其中包含指向pdf的链接。当用户点击它们时,它们会填满屏幕,如果他们按下,则角度应用程序会重新启动而不是恢复它所用的位置。
我正在尝试的是在卸载SPA之前使用window.onbeforeunload将我的控制器中的数据存储在浏览器本地存储中,然后在按下后退按钮时捕获路径时恢复数据。
我遇到的问题是如果我的应用程序打开时浏览器上有多个标签,那么他们都认为他们需要从本地存储中恢复数据。
有没有更好的方法来处理用户转到另一个网址然后按回? 我应该尝试捕获浏览器后退按钮事件,看看我是否应该从本地存储重新加载数据?
答案 0 :(得分:0)
为什么没有单独的URL来打开pdf。
您可以设置Pdf控制器,例如具有openPDf函数(url,$ location)并将$ location设置为pdf url。
答案 1 :(得分:0)
大多数情况下,页面的“状态”可以保存在 url 参数中。这也会使您的网页可收藏。
例如,如果您有pdf列表的搜索框,只需将查询嵌入url / route参数中:
#/pdfs?query=abc
然后,当用户从书签或使用后退按钮加载该URL时,您将能够恢复过滤器。
您可以使用$location.search()
在状态发生变化时保存状态,然后在控制器加载时将其读回。
.controller('PdfsCtrl', function($scope, $location) {
$scope.query = $location.search().query;
$scope.$watch('query', function(value, old) {
$location.search('query', value);
});
});