AngularJS 모델



ng-model 지시문은 애플리케이션 데이터를 HTML 컨트롤러(입력, 선택, 텍스트 영역).


ng-model 지시어

ng-model 지시어는 입력 필드의 값을 AngularJS에서 생성된 변수에 바인딩할 수 있습니다. ng-model 指令可以将输入域的值与 AngularJS 创建的变量绑定。

实例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> 
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
名字: <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>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> 
</head>
<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>

运行实例 »

点击 "运行实例" 按钮查看在线实例


验证用户输入

实例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> 
</head>
<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>在输入框中输入你的邮箱地址,如果不是一个合法的邮箱地址,会弹出提示信息。</p>

</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

以上实例中,提示信息会在 ng-show 属性返回 true 的情况下显示。


应用状态

ng-model 指令可以为应用数据提供状态值(invalid, dirty, touched, error):

实例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> 
</head>
<body>

<form ng-app="" name="myForm" ng-init="myText = 'test@php.cn'">

Email:
<input type="email" name="myAddress" ng-model="myText" required>
<p>编辑邮箱地址,查看状态的改变。</p>
<h1>状态</h1>
<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>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> 
<style>
input.ng-invalid {
    background-color: lightblue;
}
</style>
</head>
<body>

<form ng-app="" name="myForm">
    输入你的名字:
    <input name="myName" ng-model="myText" required>
</form>

<p>编辑文本域,不同状态背景颜色会发送变化。</p>
<p>文本域添加了 required 属性,该值是必须的,如果为空则是不合法的。</p>

</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

ng-model

예제

rrreee

    인스턴스 실행»
  • 온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요

  • 양방향 바인딩

    양방향 바인딩, 입력 필드의 값이 수정되면 AngularJS 속성도 수정됩니다:
  • < div class="example">

  • rrreee


    예제 실행 »

    온라인 예제를 보려면 "예제 실행" 버튼을 클릭하세요
  • 사용자 입력 확인
  • rrreee


    인스턴스 실행»

    " 온라인 인스턴스를 보려면 인스턴스 실행' 버튼을 누르세요
  • 위의 예에서는 ng-show 속성이 true를 반환할 때 프롬프트 정보가 표시됩니다.

  • 애플리케이션 상태

    ng-model 지시어는 상태 값을 제공할 수 있습니다. 더러운, 만진, 오류):
  • rrreee


    인스턴스 실행»

    다음을 기반으로 하는 온라인 인스턴스
  • CSS 클래스
ng-model 지시문을 보려면 "인스턴스 실행" 버튼을 클릭하세요. 상태는 HTML 요소이며 CSS 클래스를 제공합니다:

Example🎜
rrreee🎜
인스턴스 실행»🎜온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요🎜🎜🎜ng-model 명령은 양식 필드 클래스의 상태에 따라 다음과 같습니다. 🎜🎜 ng-invalid🎜🎜🎜🎜 ng-dirty🎜🎜🎜🎜ng-pending🎜🎜🎜🎜ng-pristine🎜🎜🎜🎜