当前位置: 首页 > 面试题库 >

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

温开畅
2023-03-14
问题内容

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

我有这个:

$scope.$on('$destroy', function () {
            alert('page1');
        });

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

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


问题答案:

从角度文档:

$ destroy();

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

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

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

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

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

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



 类似资料:
  • 问题内容: 是否有跨浏览器的JavaScript / jQuery代码来检测浏览器或浏览器选项卡是否已关闭,但不是由于单击链接而导致的? 问题答案: 如果我正确地理解了您,您想知道标签/窗口何时有效关闭。好吧,AFAIK 检测事件的唯一方法是&事件。 不幸的是(或幸运的是?),当您通过或浏览器的后退按钮离开网站时,也会触发这些事件。因此,这是我能给出的最佳答案,我认为您无法从本机检测Java 脚本

  • 问题内容: 如何在用户离开Gmail之前向用户要求确认? 我在各个地方搜索了这个问题,但他们提到的只是使用javascript window.unload 和 window.onbeforeunload 。而且,由于它被阻塞,大多数情况下在chrome中都不起作用。 问题答案: 尝试这个:

  • 浏览器上用js怎么区分 关闭标签页还是关闭整个浏览器? 现在是想在关闭整个浏览器的时候清空登录信息,关闭标签页的时候不清空?(使用windows,chrome)

  • 问题内容: 如何关闭当前的浏览器标签?以下无效。 要么 要么 问题答案: 试试这个: 来源:https : //vaadin.com/forum/#!/ thread/ 235330

  • 我想捕获浏览器窗口/选项卡关闭事件。我尝试了以下方法,但不起作用: 尝试了这些链接,但没有更多的成功。 JavaScript检查浏览器窗口何时关闭 如何捕获浏览器窗口关闭事件? javascript检测浏览器关闭标签/关闭浏览器 尝试检测浏览器关闭事件 问题: 我只想检测浏览器关闭事件,并在不向用户显示提示的情况下对此进行一些处理。 我尝试过很多方法,通过jQuery或JavaScript检测浏览

  • 问题内容: 您好,我要在关闭选项卡(不是浏览器)事件中查找信息,如果Java中有一个applet信息。我想知道是否有一个事件或一种检查该方法的方法。我只想捕获事件并创建一个小弹出框,说明您的会话将过期或类似的内容。使用Java或Javascript完全有可能吗? 更新:好的,你们向我指出的信息使我能够获得足够简单的JavaScript信息。现在它在IE,Chrome和Firefox中可以正常工作,