AngularJS ディレクティブ
AngularJS は、ディレクティブと呼ばれる新しい属性によって HTML を拡張します。
AngularJS は組み込みのディレクティブを使用してアプリケーションに機能を追加します。
AngularJS ではカスタムディレクティブを定義できます。
AngularJS ディレクティブ
AngularJS ディレクティブは、接頭辞(プレフィックス)を持つ拡張 HTML 属性です。ng-。
ng-appディレクティブは AngularJS アプリケーションを初期化します。
ng-initディレクティブはアプリケーションデータを初期化します。
ng-modelディレクティブは要素の値(入力フィールドの値など)をアプリケーションにバインドします。
完全なディレクティブの内容は、AngularJS リファレンスマニュアル。
AngularJS サンプル
試してみる »
ng-appディレクティブは AngularJS に、<div> 要素が AngularJSアプリケーションの「所有者」であることを伝えます。
データバインディング
上記のサンプルの{{ firstName }}式は AngularJS データバインディング式です。
AngularJS のデータバインディングは、AngularJS 式と AngularJS データを同期します。
{{ firstName }}によってng-model="firstName"同期されます。
次のサンプルでは、2 つのテキストフィールドが 2 つの ng-model ディレクティブによって同期されます:
AngularJS サンプル
試してみる »
![]() |
使用ng-initはあまり一般的ではありません。コントローラの章で、より良いデータ初期化方法を学びます。 |
|---|
HTML 要素の繰り返し
ng-repeatディレクティブは HTML 要素を繰り返します:
AngularJS サンプル
試してみる »
ng-repeatディレクティブをオブジェクトの配列に使用する:
AngularJS サンプル
試してみる »
![]() |
AngularJS はデータベースの CRUD(Create=作成、Read=読み取り、Update=更新、Delete=削除)アプリケーションを完全にサポートします。 サンプルの中のオブジェクトをデータベースのレコードと考えてください。 |
|---|
ng-app ディレクティブ
ng-appディレクティブは AngularJS アプリケーションのルート要素を定義します。。
ng-appディレクティブはウェブページの読み込みが完了すると自動的にブートストラップ(自動初期化)アプリケーションを起動します。
後ほど、ng-app値(例: ng-app="myModule")をコードモジュールに接続する方法を学びます。
ng-init ディレクティブ
ng-initディレクティブは AngularJS アプリケーションの初期値を定義します。。
通常、ng-init は使用しません。代わりにコントローラまたはモジュールを使用します。
コントローラとモジュールについては後ほど詳しく学びます。
ng-model ディレクティブ
ng-modelディレクティブはHTML 要素をアプリケーションデータにバインドします。
ng-modelディレクティブは次のこともできます:
- アプリケーションデータに型検証(number、email、required)を提供します。
- アプリケーションデータに状態(invalid、dirty、touched、error)を提供します。
- HTML 要素に CSS クラスを提供します。
- HTML 要素を HTML フォームにバインドします。
ng-repeat ディレクティブ
ng-repeatディレクティブはコレクション(配列)内の各項目に対してHTML 要素を 1 回クローンします。。
カスタムディレクティブの作成
AngularJS の組み込みディレクティブに加えて、カスタムディレクティブを作成することもできます。
あなたは.directive関数を使用してカスタムディレクティブを追加できます。
カスタムディレクティブを呼び出すには、HTML 要素にカスタムディレクティブ名を追加する必要があります。
ディレクティブの命名にはキャメルケースを使用します。 サンプルDirectiveただし、使用するときは-で区切る必要があります。サンプル-directive:
AngularJS サンプル
<サンプル-directive></サンプル-directive>
<script>
var app = angular.module("myApp", []);
app.directive("サンプルDirective", function() {
return {
template : "<h1>自定义指令!</h1>"
};
});
</script>
</body>
試してみる »
ディレクティブは次の方法で呼び出すことができます:
- 要素名
- 属性
- クラス名
- コメント
次のサンプルでも同じ結果が出力されます:
使用の制限
ディレクティブを特定の方法でのみ呼び出せるように制限できます。
サンプル
を追加し、restrict属性を設定し、値を"A"に設定することで、ディレクティブを属性の方法でのみ呼び出せるようにします:
app.directive("サンプルDirective", function() {
return {
restrict : "A",
template : "<h1>自定义指令!</h1>"
};
});
試してみる »
restrict値は次のいずれかになります:
E要素名として使用A属性として使用Cクラス名として使用Mコメントとして使用
restrictデフォルト値はEAで、要素名と属性名の両方でディレクティブを呼び出せます。
