当用户点击页面中的任意位置时,我正在尝试检测文档点击。我还想阻止点击div来触发文档点击。
我有类似
的东西//Directive for page click
angular.module('myApp').directive('documentClick', ['$rootScope',
function($rootScope) {
return function(scope, element, attrs) {
element.bind('click', function(e){
$rootScope.$broadcast('pageClick');
})
}
}]);
controller JS
//within a controller
$scope.toggleDiv = function() {
$scope.openDiv = !$scope.OpenDiv;
}
$scope.$on('pageClick', function($event) {
$scope.openDiv = false;
})
html
<body document-click>
<div ng-controller = 'ctrl'>
<div id='testDiv'>
<div id='childDiv' ng-click="toggleDiv()">
toggle div here
</div>
</div>
</div>
</body>
点击$scoep.openDiv = false
&#39;后,我不想触发childDiv
。我只想在点击页面中的任意位置时触发$scope.openDiv = false
。
有没有一种有角度的方式来做到这一点?
谢谢!
答案 0 :(得分:0)
您可以传递活动e
并查看target.id
:
$rootScope.$broadcast('pageClick', e);
$scope.$on('pageClick', function($event, e) {
if(e.target.id !== 'childDiv')
$scope.openDiv = false;
})