您正在寻找的角click outside指令亚当乔伊特。您可以使用它的元素是这样的:
<button id="my-button">Menu Trigger Button</button>
<div ng-controller="MenuController">
<div class="menu" id="main-menu" click-outside="closeThis()" outside-if-not="my-button">
...
</div>
</div>
当用户点击<div>
以外的任何位置,在你的控制器的closeThis()
功能将被执行。但是,如果用户点击my-button
元素,则不会将其计为click-outside
。这使您可以定义应被忽略的元素。
你click-outside
功能可能有这样的代码:
function MenuController($scope) {
$scope.closeThis = function() {
showLogoutDiv = false;
}
}
或者你可以让事情变得简单,通过不使用范围功能,只用这种形式指定在HTML中showLogoutDiv = false
:
<div ng-controller="MenuController">
<div class="menu" id="main-menu" click-outside="showLogoutDiv=false">
...
</div>
</div>
完美 - 伟大的指令:-) – userMod2