AngularJS ng-model 指令
- 前のページ AngularJS ディレクティブ
- 次のページ AngularJS データバインディング
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
- 前のページ AngularJS ディレクティブ
- 次のページ AngularJS データバインディング