我window.addEventListener
在AngularJs控制器中使用了绑定事件监听器,但是问题是当我进入另一个状态并返回到该状态时,由于多次绑定事件监听器,事件监听器函数被调用两次并重复。
这是我的控制器代码:
window.addEventListener("message", receivePosMessage, false);
我想在receivePosMessage
之后调用window.postMessage
。所以我习惯了addEventListener
。我怎么解决这个问题?
更新
我也添加了window.removeEventListener("message", receivePosMessage, false);
,addEventListener
但是没有用!
通过将以下代码添加到控制器中,解决了该问题:
$scope.$on('$destroy', function() {
window.removeEventListener("message", receivePosMessage, false);
});
该解决方案由亲爱的@ cody-mikol提供。