麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

angular ngClick阻止冒泡使用默認行為的方法

2019-11-20 08:36:20
字體:
來源:轉載
供稿:網友

本文實例講述了angular ngClick阻止冒泡使用默認行為的方法。分享給大家供大家參考,具體如下:

這其實是一個很簡單的問題,如果你認真查看過Angular官方的API文檔,本來不想記錄的。但是這個問題不止一次的被人問起,所以今天在記錄在這里。

在Angular中已經對一些ng事件如ngClick,ngBlur,ngCopy,ngCut,ngDblclick...中加入了一個變量叫做$event.

如ngClick在官方文檔是這么描述的:

Expression to evaluate upon click. (Event object is available as $event)

在查看Angular代碼ngEventDirs.js:

var ngEventDirectives = {};forEach(   'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '),   function(name) {    var directiveName = directiveNormalize('ng-' + name);    ngEventDirectives[directiveName] = ['$parse', function($parse) {     return {      compile: function($element, attr) {       var fn = $parse(attr[directiveName]);       return function(scope, element, attr) {        element.on(lowercase(name), function(event) {         scope.$apply(function() {          fn(scope, {$event:event});         });        });       };      }     };    }];   });

在上邊代碼我們可以得到兩個信息:

①. Angular支持的event: click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste

②. Angular在執行事件函數時候傳入了一個名叫$event的常量,該常量即代表當前event對象,如果你在Angular之前引入了jQuery那么這就是jQuery的event.

所以我們可以利用event的stopPropagation來阻止事件的冒泡:如下代碼:jsbin

html 代碼:

<!DOCTYPE html><html id="ng-app" ng-app="app"><head><script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js"></script><meta charset="utf-8"><title>JS Bin</title></head><body ng-controller="demo as d"><div ng-click="d.click('parent',$event)">given some text for click<hr><input type="checkbox" ng-model="d.stopPropagation" />Stop Propagation ?<hr><button type="button" ng-click="d.click('button',$event)">button</button></div></body></html>

js 代碼:

angular.module("app",[]).controller("demo",[function(){ var vm = this; vm.click = function(name,$event){  console.log(name +" -----called");  if(vm.stopPropagation){   $event.stopPropagation();  } }; return vm;}]);

可以在jsbin查看效果。

首先打開你的控制臺,然在沒選中Stop Propagation的情況下點擊button你將會看見兩條log記錄,相反選中后則只會出現button的log信息。

希望本文所述對大家AngularJS程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲欧美日韩免费 | 蜜桃视频最新网址 | 天堂成人国产精品一区 | 欧美成人一级 | 欧美日韩国产中文字幕 | 蜜桃视频观看麻豆 | 暴力强行进如hdxxx | 狠狠婷婷综合久久久久久妖精 | 中文字幕一区在线观看视频 | 国产精品视频 | 91精品老司机 | 欧美日本在线视频 | 水多视频在线观看 | 久久精品成人影院 | 久久国产综合视频 | 亚洲成人福利在线观看 | 久久久久国产一区二区三区不卡 | 一级在线免费观看视频 | 免费久久久久久久 | 成人三级视频网站 | 久久精品网 | 日日草夜夜操 | 精品一区二区三区免费爱 | 1314成人网 | 热99精品视频 | 91九色蝌蚪国产 | 伊人网站 | h视频免费观看 | www.guochanav.com| 欧美日韩亚洲国产精品 | 成人444kkkk在线观看 | 精品国产91久久久 | v片在线看 | 黄色成人小视频 | 午夜热门福利 | 久草最新在线 | 午夜亚洲影院 | 国产91一区二区三区 | 日韩视频―中文字幕 | 九九夜夜 | av免费不卡国产观看 |