ng事件指令

概述

Angular JS對(duì)各種事件進(jìn)行了對(duì)應(yīng)指令的封裝,使其能夠更好的配合Angular JS使用。具有ng指令的事件:

事件 指令 說(shuō)明
click ng-click 鼠標(biāo)左鍵單擊
dblclick ng-dblclick 鼠標(biāo)左鍵雙擊
mousedown ng-mousedown 鼠標(biāo)點(diǎn)下
mouseup ng-mouseup 鼠標(biāo)彈起
mouseover ng-mouseover 鼠標(biāo)位于上方
mouseout ng-mouseout 鼠標(biāo)移出
mousemove ng-mousemove 鼠標(biāo)移動(dòng)
mouseenter ng-mouseenter 鼠標(biāo)進(jìn)入
mouseleave ng-mouseleave 鼠標(biāo)進(jìn)入
keydown ng-keydown 鍵盤按下
keyup ng-keyup 鍵盤彈起
keypress ng-keypress 鍵盤按住
submit ng-submit 提交
focus ng-focus 獲得焦點(diǎn)
blur ng-blur 失去焦點(diǎn)
copy ng-copy 拷貝
cut ng-cut 剪切
paste ng-paste 粘貼

實(shí)現(xiàn)細(xì)節(jié)

所有的消息的ng指令都是采用統(tǒng)一的處理模式,就是監(jiān)聽對(duì)應(yīng)的消息,然后執(zhí)行綁定的數(shù)據(jù)。核心代碼為:

element.on(eventName, function(event) {
    var callback = function() {
      fn(scope, {$event:event});
    };
    if (forceAsyncEvents[eventName] && $rootScope.$$phase) {
      scope.$evalAsync(callback);
    } else {
      scope.$apply(callback);
    }
});

樣例代碼

<!DOCTYPE html>
<html lang="en" ng-app="app">
<!--<html>-->
<head>
    <title>Test</title>
</head>
<body>
<div>
    <button ng-click="clickCount = clickCount + 1" ng-init="clickCount=0">
        click {{clickCount}}
    </button>
    <button ng-dblclick="dbclickCount = dbclickCount + 1" ng-init="dbclickCount=0">
        Double click {{dbclickCount}}
    </button>
    <button ng-mousedown="mdclickCount = mdclickCount + 1" ng-init="mdclickCount=0">
        Mouse down {{mdclickCount}}
    </button>
    <button ng-mouseup="muclickCount = muclickCount + 1" ng-init="muclickCount=0">
        Mouse up {{muclickCount}}
    </button>
    <button ng-mouseover="moclickCount = moclickCount + 1" ng-init="moclickCount=0">
        Mouse over {{moclickCount}}
    </button>
</div>
<script src="./node_modules/angular/angular.js" type="text/javascript"></script>
<script>
    angular.module('app', []);
</script>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容