如何删除绑定到$ document的单击

时间:2014-11-05 08:01:50

标签: angularjs

我有一个弹出窗口,我想在屏幕上的任何其他位置点击时关闭,我通过触发open函数$document.bind('click',function(){...});内的$scope.open = function(){...}来完成此操作。

我还有另一个关闭$scope.close = function(){...}

的功能

目标是删除close函数内的bind。

我是棱角分明的新手,所以不幸的是我不完全理解我在这个问题上找到的答案。从理论上讲,我知道我可以用$destroy实现这一点,但我不知道如何实现它。有人可以教我怎么做吗?

编辑:我在控制器中执行此操作指令。

2 个答案:

答案 0 :(得分:4)

您可以使用方法unbind()

取消绑定事件
$document.unbind('click');

将删除您的事件处理程序

参考angular.element文档

答案 1 :(得分:3)

当弹出窗口显示时,执行:

$document.on('click', documentClick);

并在documentClick中隐藏popover,并执行:

$document.off('click', documentClick);

如果将弹出行为封装在myPopover指令中,请在指令的link函数中定义它们。不要在popover指令的控制器函数中操作DOM,也不要在页面的通用控制器中这样做。