AngularJS ngChange触发onb​​lur

9bl*_*lue 35 angularjs angularjs-directive

for ng-Change,有没有办法在开启时触发它blur?与jquery类似on('change')

我正在寻求一种纯粹的angular方式来做到这一点.

Nie*_*eek 76

使用ng-model-options

$scope.onchange = function () {}
Run Code Online (Sandbox Code Playgroud)
<input type="text" ng-model="x" ng-change="onchange()" ng-model-options="{updateOn: 'blur'}"/>
Run Code Online (Sandbox Code Playgroud)

  • 这绝对应该是公认的答案. (9认同)

Jas*_*son 25

版本1.2.0rc1开始,有一个ng-blur指令

jsfiddle:http://jsfiddle.net/9mvt8/6/

HTML:

<div ng-controller="MyCtrl">
    <input type='text' ng-blur='blurCount = blurCount + 1'/>

    <input type='text' ng-blur='blurCount = blurCount + 1' />

    blur count: {{blurCount}}
</div>
Run Code Online (Sandbox Code Playgroud)

脚本:

function MyCtrl($scope) {
    $scope.blurCount = 0;
    $scope.name = 'Superhero';
}
Run Code Online (Sandbox Code Playgroud)

  • 这个官方版本将阻止在模糊处理程序中处理更改逻辑的需要:<input type ="text"ng-model ="x"ng-change ="onchange()"ng-model-options = {updateOn:'模糊'}"/> (8认同)
  • 这不是我想要的,如果我没有改变值但是失去该字段的焦点,它仍然会触发该功能 (3认同)
  • 您可以在模糊处理程序中自己处理.如果值更改执行您需要的操作,否则不执行任何操作. (2认同)