javascript - 使用 Angular JS,在路由更改时关闭 Web 套接字连接的正确方法是什么?

标签 javascript angularjs websocket

这个问题不言自明。

如果我通过 Controller 在 Angular JS 中打开网络套接字连接,它将在导航(路由更改)后保持打开状态。

这当然是正常行为,但我想知道在导航时请求关闭连接的“最佳实践”方式可能是什么。

我显然可以连接到 $routeChange... 方法并广播到 Controller 。但是我错过了什么吗?有没有更好的办法?

最佳答案

在您的 Controller 的 $scope 上监听 $destroy 事件并清理所有需要清理的东西,在您的情况下将关闭 websocket 连接。

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

可以在 this answer 中找到有关 Angular Controller 生命周期的更多背景信息。 .

关于javascript - 使用 Angular JS,在路由更改时关闭 Web 套接字连接的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24733790/

相关文章:

Javascript 在表的最后一行之前添加行到表中

javascript - JS 如何更正我的日期时间脚本?

javascript - $index 中的 AngularJS 数字

javascript - 如何将数组从 php(使用 json_encode)传递到 javascript

javascript - 创建一个显示/隐藏按钮来切换表格列

javascript 在 ui 路由器 View 中不起作用

html - 使用 CSS 修剪文本

websocket - GetHostEntry 与 GetHostAddresses

node.js - 多个 socket.io 服务器共享单个 HTTP/S 服务器

同一 URL 上的 Apache2 WebSockets 反向代理