AngularJS ng-model 指令

ng-model コマンドはHTMLコントロール(input、select、textarea)の値をアプリケーションデータにバインドします。

ng-modelコマンド

使用 ng-model コマンドを使用して、入力フィールドの値をAngularJSで作成した変数にバインドできます:

インスタンス

<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 = "Bill Gates";
});
</script>

実際に試してみてください

双方向バインド

バインドは双方向です。ユーザーが入力フィールド内の値を変更すると、AngularJSの属性もその値を変更します:

インスタンス

<div ng-app="myApp" ng-controller="myCtrl">
  名前: <input ng-model="name">
  <h1>あなたが入力した内容: {{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">有効なメールアドレスではありません</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>ステータス</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">
  あなたの名前を入力してください:
  <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