私は Angular2 (beta1) の初心者で、2 つのコンポーネントで構築された、一種の単純な編集可能なグリッドを実装したいと考えています。ここでは、単純にするために 2 つのフェイクデータ コンポーネントを使用します。それらは (このプランカーを参照してください: http://plnkr.co/edit/5cZfLTIlhLc82wWV4PQI ):
- という名前の親コンポーネント
contact
。名前のある連絡先を表すとします。 - という名前の子コンポーネント
entry
。連絡先のエントリを表すとします。各連絡先には 0 個以上のエントリを含めることができます。各エントリには住所と郵便番号があります。
ユーザーが連絡先のプロパティとその子エントリを編集できるフォームを作成したいと思います。新しいエントリを追加したり、既存のエントリを削除したり、既存のエントリを編集したりできます。
この目的のために、これら両方のコンポーネントのビューはフォームベースのテンプレートを提供します。このデータ フローは次のように考えることができます。
contact : ユーザーはフォームを編集し、送信ボタンをクリックしてすべてを保存します。したがって、送信ボタンを処理し、コンポーネント出力としてイベントを発行するコードを作成するだけです。連絡先には
entries
配列プロパティがあります。したがってngFor
、テンプレートでディレクティブを使用して、それぞれのエントリ コンポーネントをレンダリングできます。entry : エントリにはプロパティが
addressCtl
あり、フォーム全体を表すにzipCtl
含まれる制御ディレクティブを表します。また、親テンプレートで次のようなことができるように、コンポーネント (および)ControlGroup
の入力としてバインドするプロパティがいくつか必要です。address
zip
<tr *ngFor="#e of entries"> <td><my-entry [address]="e.address" [zip]="e.zip"></my-entry></td> </tr>
ここで、コントロールの入力を表す「モデル」プロパティと「フォーム」ディレクティブ プロパティとの間の関係をどのように形成するかが明確ではありません。バインドを介して親コンポーネントから住所と郵便番号の値を取得し[...]
、更新された値を子コンポーネント (blur など) によって起動されたイベントを介して渡すことができる必要があります。これは NG2 の世界では意味がありますか? とにかく、ここで欠けているのは、フォーム コントロールの値をモデル プロパティの値に接続するにはどうすればよいかということです。誰かがこれをより明確にするか、いくつかの優れたドキュメントを指摘できますか?