对于我想要的通知,如果点击它之外我的div将被隐藏 plunker code link HTML代码是
<div ng-hide="notification" ng-click="notifications($event);"><i class="fa fa-bell" aria-hidden="true"></i></div>
<div ng-hide="notifyData">
<ul>
<li ng-repeat="noti in newNotificationarray">
<div class="notifymsg">{{noti.msg}}</div>
<div class="notifytitle">
<a href="#">{{noti.title}}</a>
</div>
<div class="notifyName">{{noti.cName}}</div>
</li>
</ul>
</div>
控制器中的js代码是
$scope.notifications=function(event){
$scope.notifyData=!($scope.notifyData);
event.stopPropagation();
};
window.onclick = function(){
if ($scope.notifyData) {
$scope.notifyData=false;
$scope.$apply();
}
};
如果我不使用&#34; event.stopPropagation();&#34;然后在屏幕上的任意位置以及通知div上单击隐藏div
答案 0 :(得分:0)
首先,您需要注入窗口服务。你应该这样做,以便它可以在你的测试中被模拟。
此外,更新window
的onclick处理程序中的逻辑。
var app = angular.module("myapp", []);
app.controller('mycontroller', ['$scope', '$window', function($scope, $window) {
...
$window.onclick = function(event) {
if (!$scope.notifyData) {
$scope.notifyData = true;
$scope.$apply();
}
}
}]);