ng-model 指令 綁定 HTML 元素 到應用程序數據。
ng-model 指令也可以:
- 為應用程序數據提供類型驗證(number、email、required)。
- 為應用程序數據提供狀態(invalid、dirty、touched、error)。
- 為 HTML 元素提供 CSS 類。
- 綁定 HTML 元素到 HTML 表單。
雙向綁定
<div ng-app="myApp" ng-controller="myCtrl">
名字: <input ng-model="name">
<h1>你輸入了: {{name}}</h1>
</div>
驗證用戶輸入
<form ng-app="" name="myForm">
Email:
<input type="email" name="myAddress" ng-model="text">
<span ng-show="myForm.myAddress.$error.email">不是一個合法的郵箱地址</span>
</form>
應用狀態
ng-model 指令可以為應用數據提供狀態值(invalid, dirty, touched, error):
<form ng-app="" name="myForm" ng-init="myText = 'test@runoob.com'">
Email:
<input type="email" name="myAddress" ng-model="myText" required></p>
<h1>狀態</h1>
{{myForm.myAddress.$valid}}
{{myForm.myAddress.$dirty}}
{{myForm.myAddress.$touched}}
</form>
屬性 |
描述 |
$dirty |
表單有填寫記錄 |
$valid |
字段內容合法的 |
$invalid |
字段內容是非法的 |
$pristine |
表單沒有填寫記錄 |
CSS 類
ng-model 指令基於它們的狀態為 HTML 元素提供了 CSS 類:
<style>
input.ng-invalid {
background-color: lightblue;
}
</style>
<body>
<form ng-app="" name="myForm">
輸入你的名字:
<input name="myAddress" ng-model="text" required>
</form>
ng-model 指令根據表單域的狀態添加/移除以下類:
-
- ng-empty
- ng-not-empty
- ng-touched
- ng-untouched
- ng-valid
- ng-invalid
- ng-dirty
- ng-pending
- ng-pristine