我将ng-mouseleave事件附加到我的html标签上。不幸的是,它触发了两次。一次是用户离开网站时,这很好,一次是他进入网站时,这是不需要的。我有一个控制台.log关于事件。
普伦克:http://run.plnkr.co/plunks/rjfyCw/
索引.html
<html ng-app="myApp" id="myApp" ng-controller="MainController as mainCtrl" ng-mouseleave="mainCtrl.log('xy')">
控制器.js
myAppControllers.controller('MainController', [ function () {
this.log = function(log) {
console.log(log);
};
}]);
这是因为事件也在子元素上触发,您需要手动停止此操作:
ng-mouseleave="mainCtrl.log($event, 'xy')"
和
this.log = function($event, log) {
$event.stopPropagation()
console.log(log);
};
http://plnkr.co/edit/sSpqiIqMz3rVYzrPQ0iC?p=preview