选项卡/浏览器关闭时的Angularjs事件

时间:2015-04-22 09:16:49

标签: javascript angularjs

我有一个有角度的应用程序现在我希望在登录时登录用户,直到他退出/关闭浏览器或者指向另一个站点。

如果用户按下注销按钮,则相当容易,但当用户关闭浏览器或使用其他网站时,问题就会出现。

我的问题是,当用户关闭浏览器/标签页和/或更改网页时,如何在角度中检测到此事并触发事件?

2 个答案:

答案 0 :(得分:0)

当有人离开该页面时,会有一个onunload事件被调用

angular.element(document.getElementById('myDiv')).scope();
scope.my_function();

更多示例

<div id="myDiv">
 <!-- some code here -->
</div>

<script>
....

angular.controller('MyController', ['$scope', function($scope) {
   $scope.my_function = function() {
      // Do something
   };
}]);   // End of controller

angular.element(document.getElementById('myDiv')).scope();
scope.my_function();

</script>

答案 1 :(得分:0)

来自角度文档:https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$destroy

$破坏();

从父作用域中移除当前作用域(及其所有子作用域)。删除意味着对$ digest()的调用将不再传播到当前范围及其子节点。删除还意味着当前范围符合垃圾收集的条件。 $ destroy()通常由诸如ngRepeat之类的指令用于管理循环的展开。 在范围被销毁之前,在此范围内广播$ destroy事件。应用程序代码可以注册$ destroy事件处理程序,使其有机会执行任何必要的清理。 请注意,在AngularJS中,还有一个$ destroy jQuery事件,可以在从DOM中删除元素之前清除DOM绑定。

另请参阅:fire angularjs event when tab/browser is closed