angularjs进修笔记—事宜指令

ngClick

实用标签:一切
触发前提:单击

#html
<div ng-controller="LearnCtrl">
    <div ng-click="click()">click me</div>
    <button ng-click="click()">click me</button>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.click = function () {
                alert('click');
            }
        });
        

ngDblclick

实用标签:一切
触发前提:双击

#html
<div ng-controller="LearnCtrl">
    <div ng-dblclick="dblclick()">click me</div>
    <button ng-dblclick="dblclick()">click me</button>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.dblclick = function () {
                alert('click');
            }
        });

ngBlur

实用标签:

  • a

  • input

  • select

  • textarea

触发前提:落空核心

#html
<div ng-controller="LearnCtrl">
    <a href="" ng-blur="blur()">link</a>

    <input type="text" ng-blur="blur()"/>
    <textarea cols="30" rows="10" ng-blur="blur()"></textarea>
    <select ng-blur="blur()">
        <option>----</option>
        <option>jacky</option>
        <option>rose</option>
    </select>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.blur = function () {
                alert('blur');
            }
        });

ngFocus

实用标签:

  • a

  • input

  • select

  • textarea

触发前提:猎取核心

#html
<div ng-controller="LearnCtrl">
    <a href="" ng-focus="focus()">link</a>

    <input type="text" ng-focus="focus()"/>
    <textarea cols="30" rows="10" ng-focus="focus()"></textarea>
    <select ng-focus="focus()">
        <option>----</option>
        <option>jacky</option>
        <option>rose</option>
    </select>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.focus= function () {
                alert('focus');
            }
        });

ngChange

实用标签:input
触发前提:model更新

输入框的内容转变并不代表model的值更新。按我的邃晓,平常当两个状况相互切换时,model值会更新。两个状况我称之为正当状况和不正当状况。

不正当的状况:输入的内容不相符type范例,如email范例。输入的内容不相符校验前提,如ngMinlength。不正当的状况下,model会被更新成undefined

正当的状况:输入的内容是相符范例和校验前提的。

#html
<div ng-controller="LearnCtrl">
    <input type="text" ng-model="text" ng-change="change()" ng-minlength="5"/>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            //$scope.text='';
            $scope.change = function () {
                alert('change');
            }            
        });

初始化和不初始化text的前提下,change触发是不一样的哦,这里涉及到model初始化和更新机制。

ngCopy

实用标签:

  • a

  • input

  • select

  • textarea

官方api上说运用的标签是这些,我没邃晓a和select复制有啥子用。别的,我换个div实际上也能触发copy事宜。平常经常使用的就是input和textarea。

触发前提:复制。鼠标右键复制和快捷键Ctrl+C都邑触发。

#html
<div ng-controller="LearnCtrl">
    <input type="text" ng-copy="copy()"/>
    <textarea cols="30" rows="10" ng-copy="copy()"></textarea>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.copy = function () {
                alert('copy');
            }
        });

ngCut

实用标签:

  • a

  • input

  • select

  • textarea

    触发前提:剪切。鼠标右键剪切和快捷键Ctrl+X都邑触发。

#html
<div ng-controller="LearnCtrl">
    <input type="text" ng-cut="cut()"/>
    <textarea cols="30" rows="10" ng-cut="cut()"></textarea>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.cut = function () {
                alert('cut');
            }
        });

ngPaste

实用标签:

  • a

  • input

  • select

  • textarea

    触发前提:粘贴。鼠标右键粘贴和快捷键Ctrl+V都邑触发。

#html
<div ng-controller="LearnCtrl">
    <input type="text" ng-paste="paste()"/>
    <textarea cols="30" rows="10" ng-paste="paste()"></textarea>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.paste = function () {
                alert('paste');
            }
        });

ngKeydown

实用标签:一切

个人感觉照样input和textarea比较经常使用

触发前提:键盘按键按下

要把$event传过去,平常都是要推断按了哪一个按键的。

#html
<div ng-controller="LearnCtrl">
    <input type="text" ng-keydown="keydown($event)"/>
    <textarea cols="30" rows="10" ng-keydown="keydown($event)"></textarea>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.keydown = function ($event) {
                alert($event.keyCode);
            }
        });

ngKeyup

实用标签:一切

个人感觉照样input和textarea比较经常使用

触发前提:键盘按键按下并松开

#html
<div ng-controller="LearnCtrl">
    <input type="text" ng-keyup="keyup($event)"/>
    <textarea cols="30" rows="10" ng-keyup="keyup($event)"></textarea>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.keyup = function ($event) {
                alert($event.keyCode);
            }
        });

ngKeypress

实用标签:一切

个人感觉照样input和textarea比较经常使用

触发前提:键盘按键按下

#html
<div ng-controller="LearnCtrl">
    <input type="text" ng-keypress="keypress($event)"/>
    <textarea cols="30" rows="10" ng-keypress="keypress($event)"></textarea>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.keypress = function ($event) {
                alert($event.keyCode);
            }
        });

keydown,keypress,keydown三者辨别

激发事宜的按键

非字符键不会激发 KeyPress 事宜,但非字符键却能够激发 KeyDown 和 KeyUp 事宜。

事宜激发的时候

KeyDown 和 KeyPress 事宜在按下键时发作,KeyUp 事宜在开释键时发作。

事宜发作的递次

KeyDown -> KeyPress -> KeyUp。假如按一个键良久才松开,发作的事宜为:KeyDown -> KeyPress -> KeyDown -> KeyPress -> KeyDown -> KeyPress -> … -> KeyUp。

  • KeyDown触发后,不一定触发KeyUp,当KeyDown 按下后,拖动鼠标,那末将不会触发KeyUp事宜。

  • KeyPress重要用来捕捉数字(注重:包含Shift+数字的标记)、字母(注重:包含大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{最先键}和方向键外的ANSI字符。

  • KeyDown 和KeyUp 一般能够捕捉键盘除了PrScrn一切按键(这里不议论特别键盘的特别键)。

  • KeyPress 只能捕捉单个字符。

  • KeyDown 和KeyUp 能够捕捉组合键。

  • KeyPress 能够捕捉单个字符的大小写。

  • KeyDown和KeyUp 关于单个字符捕捉的KeyValue 都是一个值,也就是不能推断单个字符的大小写。

  • KeyPress 不辨别小键盘和主键盘的数字字符。

  • KeyDown 和KeyUp 辨别小键盘和主键盘的数字字符。

  • 个中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕捉。

ngMousedown

实用标签:一切
触发前提:鼠标按下,摆布中心按下都邑触发

#html
<div ng-controller="LearnCtrl">
    <button ng-mousedown="mousedown($event)">button</button>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.mousedown = function ($event) {
                alert($event.which);
            }
        });

ngMouseup

实用标签:一切
触发前提:鼠标按下弹起,摆布中心按下弹起都邑触发

#html
<div ng-controller="LearnCtrl">
    <button ng-mouseup="mouseup($event)">button</button>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.mouseup = function ($event) {
                alert($event.which);
            }
        });

ngMouseenter

实用标签:一切
触发前提:鼠标进入

#html
<div ng-controller="LearnCtrl">
    <button ng-mouseenter="mouseenter()">button</button>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.mouseenter = function () {
                alert('mouseenter');
            }
        });

ngMouseleave

实用标签:一切
触发前提:鼠标脱离

#html
<div ng-controller="LearnCtrl">
    <button ng-mouseleave="mouseleave()">button</button>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.mouseleave = function () {
                alert('mouseleave');
            }
        });

ngMousemove

实用标签:一切
触发前提:鼠标挪动

#html
<div ng-controller="LearnCtrl">
    <button ng-mousemove="mousemove()">button</button>
</div>

#script
angular.module('learnModule', [])

        .controller('LearnCtrl', function ($scope) {
            $scope.mousemove = function () {
                alert('mousemove');
            }
        });

ngMouseover

实用标签:一切
触发前提:鼠标进入

    原文作者:小俞
    原文地址: https://segmentfault.com/a/1190000002634554
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞