我有一个有角度的应用程序现在我希望在登录时登录用户,直到他退出/关闭浏览器或者指向另一个站点。
如果用户按下注销按钮,则相当容易,但当用户关闭浏览器或使用其他网站时,问题就会出现。
我的问题是,当用户关闭浏览器/标签页和/或更改网页时,如何在角度中检测到此事并触发事件?
答案 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绑定。