AngularJS ng-model 指令
ng-model 指令将 HTML 控件(input、select、textarea)的值绑定到应用程序数据。
ng-model 指令
使用 ng-model 指令,您可以将输入字段的值绑定到在 AngularJS 中创建的变量。
实例
<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 = "Bill Gates";
});
</script>
双向绑定
绑定是双向的。如果用户更改输入字段内的值,AngularJS 属性也会更改其值:
实例
<div ng-app="myApp" ng-controller="myCtrl">
Name: <input ng-model="name">
<h1>You entered: {{name}}</h1>
</div>
验证用户输入
ng-model 指令可以为应用程序数据(数字、电子邮件、必填项)提供类型验证:
实例
<form ng-app="" name="myForm"> Email: <input type="email" name="myAddress" ng-model="text"> <span ng-show="myForm.myAddress.$error.email">Not a valid e-mail address</span> </form>
在上面的例子中,仅当 ng-show 属性中的表达式返回 true 时,才会显示 span。
如果 ng-model 属性中的属性不存在,AngularJS 将为您创建一个。
应用程序状态
ng-model 指令可以提供应用程序数据的状态(有效、脏、触摸、错误):
实例
<form ng-app="" name="myForm" ng-init="myText = 'post@myweb.com'">
Email:
<input type="email" name="myAddress" ng-model="myText" required>
<h1>Status</h1>
{{myForm.myAddress.$valid}}
{{myForm.myAddress.$dirty}}
{{myForm.myAddress.$touched}}
</form>
CSS 类
ng-model 指令根据 HTML 元素的状态提供 CSS 类:
实例
<style>
input.ng-invalid {
background-color: lightblue;
}
</style>
<body>
<form ng-app="" name="myForm">
Enter your name:
<input name="myName" ng-model="myText" required>
</form>
ng-model 指令根据表单字段的状态添加/删除以下类:
- ng-empty
- ng-not-empty
- ng-touched
- ng-untouched
- ng-valid
- ng-invalid
- ng-dirty
- ng-pending
- ng-pristine