window.addEventListener in angularjs 控制器导致调用两次或更多次
window.addEventListener in angularjs controller cause to call twice or more
我在 AngularJs 控制器中使用 window.addEventListener
来绑定事件监听器,但问题是当我进入另一个状态并返回到该状态时,事件监听器函数调用两次并重复, 因为多次绑定事件监听器。
这是我的控制器代码:
window.addEventListener("message", receivePosMessage, false);
我想 receivePosMessage
在 window.postMessage
之后调用。所以我用了addEventListener
。
我该如何解决这个问题?
更新
我在addEventListener
之前也加了window.removeEventListener("message", receivePosMessage, false);
,但是没用!
通过将以下代码添加到控制器中解决了问题:
$scope.$on('$destroy', function() {
window.removeEventListener("message", receivePosMessage, false);
});
亲爱的@cody-mikol给出了这个解决方案。
我在 AngularJs 控制器中使用 window.addEventListener
来绑定事件监听器,但问题是当我进入另一个状态并返回到该状态时,事件监听器函数调用两次并重复, 因为多次绑定事件监听器。
这是我的控制器代码:
window.addEventListener("message", receivePosMessage, false);
我想 receivePosMessage
在 window.postMessage
之后调用。所以我用了addEventListener
。
我该如何解决这个问题?
更新
我在addEventListener
之前也加了window.removeEventListener("message", receivePosMessage, false);
,但是没用!
通过将以下代码添加到控制器中解决了问题:
$scope.$on('$destroy', function() {
window.removeEventListener("message", receivePosMessage, false);
});
亲爱的@cody-mikol给出了这个解决方案。