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