Angularはinputタグ等のform用タグにて[(ngModel)]属性を使用すると双方向バインディングになる便利な機能がある。
これを自作した独自のコンポーネントで実現する方法。
簡単に言えば下記の解説通り。
Custom Form Controls in Angular by thoughtram
ざっと説明すると下記の通り。
コンポーネントにControlValueAccessorをimplementする。
プロパティとして渡された値が来るので処理。
changeとtouchedのコールバック関数が渡されるので、
それを保存しておいてコンポーネントの呼び出し元に返したい時に結果を返す。
Angularにきちんと認識させるためにNG_VALUE_ACCESSORのprovidersを設定しているらしい。
上記のような感じでできる。
共通設定などを一切汚さずコンポーネントのみで解決できるところが良い。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント