AngularJS ng-model 指令
ng-model 指令将 HTML 控件(输入、选择、文本区域)的值绑定到应用程序数据。
ng-model 指令
使用 ng-model 指令,可以将输入字段的值绑定到 AngularJS 中创建的变量。
实例
<!DOCTYPE html><html><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script><body><div ng-app="myApp" ng-controller="myCtrl">Name: <input ng-model="name"></div><script>var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) {$scope.name = "John Doe";});</script><p>使用 ng model 指令将输入字段的值绑定到控制器中创建的属性。</p></body></html>
双向绑定
绑定是双向的。如果用户更改输入字段内的值,AngularJS 属性也将更改其值:
实例
<!DOCTYPE html><html><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script><body><div ng-app="myApp" ng-controller="myCtrl">名称: <input ng-model="name"><h1>您输入: {{name}}</h1></div><script>var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) {$scope.name = "John Doe";});</script><p>更改输入字段中的名称,您将看到标题中的名称相应地更改。</p></body></html>
验证用户输入
The ng-model directive can provide type validation for application data (number, e-mail, required):
实例
<!DOCTYPE html><html><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script><body><form ng-app="" name="myForm">Email:<input type="email" name="myAddress" ng-model="text"><span ng-show="myForm.myAddress.$error.email">非法邮件地址</span></form><p>在输入字段中输入您的电子邮件地址。如果输入的不是电子邮件格式,AngularJS 将显示错误消息。</p></body></html>
在上面的示例中,仅当 ng-show 属性中的表达式返回 true 时,才会显示 span。
如果
ng-model 属性中的属性不存在,AngularJS 将为您创建一个。应用程序状态
ng-model 指令可以提供应用程序数据的状态(invalid、dirty、touched、error):
实例
<!DOCTYPE html><html><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script><body><form ng-app="" name="myForm" ng-init="myText = 'post@myweb.com'">Email:<input type="email" name="myAddress" ng-model="myText" required=""><p>编辑电子邮件地址,并尝试更改状态。</p><h2>状态</h2><p>Valid: {{myForm.myAddress.$valid}} (如果为 true,则该值满足所有条件).</p><p>Dirty: {{myForm.myAddress.$dirty}} (如果为 true,则该值已更改).</p><p>Touched: {{myForm.myAddress.$touched}} (如果为 true,那么这个输入框已聚焦).</p></form></body></html>
CSS 样式表
ng-model 指令为 HTML 元素提供 CSS 样式表名,具体取决于它们的状态:
实例
<!DOCTYPE html><html><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script><style>input.ng-invalid {background-color: lightblue;}</style><body><form ng-app="" name="myForm">输入您的名称:<input name="myName" ng-model="myText" required=""></form><p>编辑文本字段,它将根据状态 获得/移除 样式表。</p><p><b>备注:</b> 带有 "required" 属性的文本字段为空时无效。</p></body></html>
ng-model 指令根据表单字段的状态 添加/删除 以下类:
- ng-empty
- ng-not-empty
- ng-touched
- ng-untouched
- ng-valid
- ng-invalid
- ng-dirty
- ng-pending
- ng-pristine