什么是Angular JS中的Ng-change,如何为其赋值?
时间:2020-02-23 14:29:36 来源:igfitidea点击:
我们来学习一下AngularJS中提供的有趣指令,例如:ng-change指令,该名称本身会部分放弃它所执行的工作。
程序员通常会在变更事件和ng-change事件之间感到困惑,让我们在此教程 中清除所有内容。
"什么是指令?"
AngularJS指令只是带有前缀ng-的扩展HTML属性。
AngularJS提供了一组内置指令,这些指令为我们的应用程序提供了各种函数。
AngularJS还允许我们定义自己的指令。
"什么是ng-change?"
Ng-change是AngularJS中的指令,用于在更改组件值或者事件时执行操作。
换句话说,ng-change指令告诉AngularJS当HTML元素的值改变时该怎么做。
ng-change指令需要ng-model指令。
使用ng-change指令时的重要要点:
onChange事件会怎样? AngularJS的ng-change指令不会覆盖元素的原始onchange事件,ng-change表达式和原始onchange事件都将被执行。
每次更改值时都会触发ng-change事件。它不会等待所有更改完成,也不会等待输入字段失去焦点。
仅当输入值发生实际更改时才触发ng-change事件,如果更改是通过JavaScript进行的,则不会触发ng-change事件。
HTML标记(例如<input>,<select>和<textarea>)支持此ng-change指令。
仅当输入值的更改导致将新值提交给模型时,才评估ngChange表达式。
它将不被评估:
如果$parsers转换管道返回的值未更改
如果输入继续无效,则模型将保持为空
如果模型不是通过输入值而是通过编程方式进行更改。
注意,该指令要求存在ngModel。
语法:
<element ng-change=“expression”></element>
expression:指定当元素的值更改时执行的表达式。
示例:
<!DOCTYPE html> <html> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <body ng-app="App1"> <div ng-controller="Cng1"> <p>Please type in the input field:</p> <input type="text" ng-change="myFunc()" ng-model="Val" <p>The input field has changed {{count}} times.</p> </div> <script> angular.module('App1', []) .controller('cng1l', ['$scope', function($scope) { $scope.count = 0; $scope.myFunc = function() { $scope.count++; }; }]); </script> </body> </html>
输出(3次更改后)
请在输入字段中输入:
输入字段已更改3次。