angularjs - 在angularjs中检测页面卸载

标签 angularjs global-variables onbeforeunload persist rootscope

我有一个 javascript 对象,我需要全局到我的 angularjs 应用程序。当应用程序即将被卸载时(由于页面刷新或其他情况),我想将对象持久保存到浏览器存储中。我相信将对象添加到 $rootScope 将满足使对象全局化的第一个要求,但在 onbeforeunload 期间将对象写入存储。事件,将需要访问 $rootScope 变量。是否可以在 angularjs 中检测到页面卸载事件?

最佳答案

这应该可以,但我也建议避免$rootScope由于不鼓励使用全局状态,您也可以包装 localStorage在服务中,以便可以注入(inject)和模拟以进行测试。

.run([
  '$window',
  '$rootScope',
  function($window, $rootScope) {
    $window.addEventListener('beforeunload', function() {
      localStorage.myValue = $rootScope.myValue;
    });
  }
]);

关于angularjs - 在angularjs中检测页面卸载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27367728/

相关文章:

c# - 如何在 ASP.NET MVC 页面中声明全局变量

Python Shell : Global name 't' is not define. 我:但它是

ios - 删除 Constant.h 文件 ios 中的值

javascript - 在 onbeforeunload 事件的窗口确认时调用回调函数

angularjs - Angular Datatable Set Searchable False

angularjs - 如何使用 $injector 加载 angularjs 指令

javascript - 检查页面刷新是否触发了window.onbeforeunload?

javascript - 区分离开网站和使用 Javascript 刷新页面

javascript - 两个 Ng-repeat Angularjs 内 FilterBy 中的动态值

javascript - AngularJS ngRoute 路由未正确注入(inject)我的页面?