关闭标签页/浏览器时触发Angularjs事件

我想在Angularjs控制器中触发JS代码。

我有这个:

$scope.$on('$destroy', function () {

alert('page1');

});

当我离开使用该控制器的页面时,此方法工作正常,但当我关闭标签/浏览器时,该方法不起作用。

标签/浏览器关闭时是否需要使用其他代码来触发JS代码?

回答:

从角度文档:

从父范围中删除当前范围(及其所有子级)。删除意味着对$ digest()的调用将不再传播到当前作用域及其子级。删除还意味着当前范围可以进行垃圾回收。

$ destroy()通常由ngRepeat之类的指令用于管理循环的展开。

就在销毁示波器之前,在此示波器上广播$ destroy事件。应用程序代码可以注册$ destroy事件处理程序,这将使它有机会执行任何必要的清除。

请注意,在AngularJS中,还有一个$ destroy jQuery事件,该事件可用于在从DOM中删除元素之前清除DOM绑定。

这只是处理范围本身被销毁的情况,尽管在关闭选项卡/浏览器时似乎没有发生。

您必须使用较低级别的onunload和onbeforeunload事件来处理这种情况

以上是 关闭标签页/浏览器时触发Angularjs事件 的全部内容, 来源链接: utcz.com/qa/426543.html

回到顶部