这个问题不言自明。
如果我在Angular JS中通过控制器打开一个web套接字连接,它将在导航(路由更改)后保持打开状态。
这当然是正常的行为,但是我想知道在导航时请求关闭连接的"最佳实践"方式是什么。
我显然可以钩住$routeChange...
方法并广播到控制器。但我错过了什么吗?有没有更好的办法?
监听控制器的$scope
上的$destroy
事件,并清理所有需要清理的东西,在您的情况下,这将关闭websocket连接。
$scope.$on('$destroy', function(event) {
...
});
关于angular控制器生命周期的更多背景信息可以在这个答案中找到。