我有一个弹出窗口,我想在屏幕上的任何其他位置点击时关闭,我通过触发open函数$document.bind('click',function(){...});
内的$scope.open = function(){...}
来完成此操作。
我还有另一个关闭$scope.close = function(){...}
目标是删除close函数内的bind。
我是棱角分明的新手,所以不幸的是我不完全理解我在这个问题上找到的答案。从理论上讲,我知道我可以用$destroy
实现这一点,但我不知道如何实现它。有人可以教我怎么做吗?
答案 0 :(得分:4)
答案 1 :(得分:3)
当弹出窗口显示时,执行:
$document.on('click', documentClick);
并在documentClick
中隐藏popover,并执行:
$document.off('click', documentClick);
如果将弹出行为封装在myPopover指令中,请在指令的link函数中定义它们。不要在popover指令的控制器函数中操作DOM,也不要在页面的通用控制器中这样做。