我的应用程序中的一个路由需要一些特殊的按键事件绑定,但没有其他路由可以。
所以,在那条路线的控制器中,我就像这样绑定事件:
angular.element( document.body ).bind('keydown keypress', function (event)
{
//...
});
我刚注意到当我导航到那条路线,然后离开并转到另一条路线时,那些键盘事件绑定仍处于活动状态。
当路由更改为其他控制器时,如何取消绑定事件?
答案 0 :(得分:2)
当范围被破坏时,你可以取消绑定事件。
$scope.$on('$destroy', function() {
angular.element( document.body ).unbind('keydown keypress', handler);
});
http://api.jquery.com/unbind/提供了有关如何取消绑定事件的参考资料。
每当范围以角度方式销毁时,$ destroy事件就会被触发。
答案 1 :(得分:0)
当范围被销毁时,您可以使用jqLite中的unbind函数。