angular 离开路线时取消绑定事件
angular unbind events when you leave a route
我的应用程序中的一个路由需要一些特殊的 keypress
事件绑定,但 none 其他路由需要。
所以,在那个路由的控制器中,我像这样绑定事件:
angular.element( document.body ).bind('keydown keypress', function (event)
{
//...
});
我刚刚注意到,当我导航到那条路线,然后离开并转到另一条路线时,那些键盘事件绑定仍然有效。
当路由切换到不同的控制器时,如何解除事件绑定?
当作用域被销毁时,您可以取消绑定事件。
$scope.$on('$destroy', function() {
angular.element( document.body ).unbind('keydown keypress', handler);
});
http://api.jquery.com/unbind/ 有关于如何取消绑定事件的参考资料。
只要范围在 angular 中被销毁,就会触发 $destroy 事件。
当作用域被销毁时,您可以使用 jqLite 中的 unbind 函数。
我的应用程序中的一个路由需要一些特殊的 keypress
事件绑定,但 none 其他路由需要。
所以,在那个路由的控制器中,我像这样绑定事件:
angular.element( document.body ).bind('keydown keypress', function (event)
{
//...
});
我刚刚注意到,当我导航到那条路线,然后离开并转到另一条路线时,那些键盘事件绑定仍然有效。
当路由切换到不同的控制器时,如何解除事件绑定?
当作用域被销毁时,您可以取消绑定事件。
$scope.$on('$destroy', function() {
angular.element( document.body ).unbind('keydown keypress', handler);
});
http://api.jquery.com/unbind/ 有关于如何取消绑定事件的参考资料。
只要范围在 angular 中被销毁,就会触发 $destroy 事件。
当作用域被销毁时,您可以使用 jqLite 中的 unbind 函数。