Angular2のコンポーネントとテンプレート間でデータをやり取りするバインディングの形式についてまとめました。
※Angular2のβ版、TypeScriptを使って確認したものです。
1)1Way(データの流れ:データソース(コンポーネント)→ビュー(DOM))
①内挿(interpolation)
{{value}}
※内挿(interpolation)の詳細はこちら。
②プロパティバインディング
[property] = “value”
・DOM要素のプロパティをセットする。
例)
<img [src] = “heroImageUrl”>
img要素のsrc属性にコンポーネントの属性の値をセット
③アトリビュートバインディング
[attr.アトリビュート名] = “value”
・aria、svg、tableのspanアトリビュートなど、対応する要素プロパティがない場合に使用する。
例)
<tr><td [attr.colspan] = “1 + 1″>One-Two</td></tr>
④クラスバインディング
[class] = “expr”
・要素のclass属性からCSSクラス名を追加したり、除去したりできる。
⑤スタイルバインディング
[style.style-property] = “expr”
・インラインスタイルを設定できる。
2)1Way(データの流れ:ビュー(DOM)→データソース(コンポーネント))
●イベントバインディング
(event) = “handler”
例)
<div (click)=”selectHero(hero)></div>
ユーザーのクリックイベントでコンポーネントの”selectHero”メソッドをコール
3)2wayデータバインディング(データの流れ:データソース(コンポーネント)←→ビュー(DOM))
●NgModelビルトインディレクティブ
[(ngModel)] = “proverty”
・構文は”[..]”のプロパティバインディングと”(..)”のイベントバインディングを合わせた形。
例)
<input [(ngModel)]=”hero.name”>
・プロパティバインディングでコンポーネントからデータがセット。
・ユーザーのインプットボックス入力はイベントバインディングでコンポーネントに最新の値が再設定
※2wayデータバインディングの詳細はこちら。 関連記事の目次
-
基本、仕組み
- Angular2のモジュール、コンポーネント、bootstrapの概要
- データバインディングの概要
- プロパティバインディングとアトリビュートバインディング
- イベント処理
- NgClass、NgStyle、クラスバインディング、スタイルバインディングを使ってcss設定
- 内挿(interpolation)、2Wayバインディングの概要
- NgForを使ってリストやテーブルを作成
- NgSwitchで内部にあるHTMLテンプレートの表示を切り替え
- NgIf、[style.display]、[hidden]を使って表示、非表示を切り替え
- inputs、@Inputを使ってディレクティブ間で値を受け渡し
- outputs、@Output、EventEmitterを使ってカスタムイベントを定義
- カスタム構造ディレクティブ作成
- NgForを使ってラジオボタン、selectメニューを作成
- フォームのバリデーションチェック、動的にCSS追加
- カスタムバリデート、カスタムフォーム
- フォームで非同期のバリデート、入力値の変更検知
- サービスの概要、サービスを使ったサンプル作成
- Promiseを使って非同期にデータを取得
- ビルトインパイプ
- カスタムパイプでソート(orderBy)機能のサンプル作成
- Bootstrap3を使ってページング
- ステートフル、非同期パイプの使用方法
- HTTPでサーバーからJSONデータ取得
- HTTP POST送信
- Observableを使ってHTTPリクエストを複数送信
- JSONPを使ってサーバー通信
- ルーティング設定、RESTのサンプル作成
- Angular2でNavigationEndイベントを使ってflashメッセージ表示
- ルーターの遅延ロード(AsyncRoute)とrouterCanDeactivateの使用方法
- Angular v4のUpgradeModuleを使ってAngularJS v1アプリを動作
- Angular v4のUpgradeModuleを使ってAngularJS v1アプリとのハイブリッドアプリを動作
ディレクティブ
フォーム
サービス
パイプ
HTTP
ルーティング
UpgradeModuleを使ってv1アプリを動作、ハイブリッで動作
-
基本、仕組み
- Angular2のモジュール、コンポーネント、bootstrapの概要
- データバインディングの概要
- プロパティバインディングとアトリビュートバインディング
- イベント処理
- NgClass、NgStyle、クラスバインディング、スタイルバインディングを使ってcss設定
- 内挿(interpolation)、2Wayバインディングの概要
- NgForを使ってリストやテーブルを作成
- NgSwitchで内部にあるHTMLテンプレートの表示を切り替え
- NgIf、[style.display]、[hidden]を使って表示、非表示を切り替え
- inputs、@Inputを使ってディレクティブ間で値を受け渡し
- outputs、@Output、EventEmitterを使ってカスタムイベントを定義
- カスタム構造ディレクティブ作成
- NgForを使ってラジオボタン、selectメニューを作成
- フォームのバリデーションチェック、動的にCSS追加
- カスタムバリデート、カスタムフォーム
- フォームで非同期のバリデート、入力値の変更検知
- サービスの概要、サービスを使ったサンプル作成
- Promiseを使って非同期にデータを取得
- ビルトインパイプ
- カスタムパイプでソート(orderBy)機能のサンプル作成
- Bootstrap3を使ってページング
- ステートフル、非同期パイプの使用方法
- HTTPでサーバーからJSONデータ取得
- HTTP POST送信
- Observableを使ってHTTPリクエストを複数送信
- JSONPを使ってサーバー通信
- ルーティング設定、RESTのサンプル作成
- Angular2でNavigationEndイベントを使ってflashメッセージ表示
- ルーターの遅延ロード(AsyncRoute)とrouterCanDeactivateの使用方法
- Angular2とBootstrap4でAccordion
- Angular2とBootstrap4でCarousel
- Angular2とBootstrap4でドロップダウン
- Angular2とBootstrap4でツールチップ、ポップオーバー
- Angular2とBootstrap4でタブ
- Angular2とBootstrap4でページネーション(ページャー)
ディレクティブ
フォーム
サービス
パイプ
HTTP
ルーティング
Bootstrapと連携