2016-09-20 7 views
0

私はthis artcleを読んでいたとの記事で私は、次を参照してください。角2のフォーム要素の属性 - 正しい構文ですか?

<input type="search" [formControl]="seachControl">

<input type="text" formControlName="street">

私は正しい構文は述べて何のためにあるのか疑問に思ってformControlformGroup。私は

<input type="text" [formControlName]="street">

または

<input type="text" [attr.formControlName]="street">

または

<input type="text" [formControl]="street">ような何かを行うことができますか?さらに具体的には、3つのインスタンスがどのように異なるのでしょうか?

答えて

0

[formControl]="seachControl"は、モデルバインディングと呼ばれるもので、メインフォーム要素、つまり検索にバインドされています。

単一フォーム要素(search)を使用している場合は、classの中に作成したにバインドしてモデル化し、バインドする変数のタイプに注意してください。

とは、ここでstreet以来

<input type="text" formControlName="street"> 

用としてあなたがstreet変数に直接アクセスすることはできませんメインformControl要素内に作成されました。このディレクティブが実行しているのは、このタグがメインである/親要素が、formControl内に作成したstreetにバインドする必要があるということです。

<input type="text" [formControlName]="street"> 

については

私は知らないが、私はformControlNameが実際に行っていないバインディングそれは、このタグがにバインドするために必要なものを伝えるの一種だと思います。そして、この構文は、あなたのクラス内の通り変数を探すことを試みることを示唆しています。

ご覧のとおり、彼は言います。

これは、formControlName指示が出現するところです。テンプレート駆動フォームの属性の組み合わせは、ngModelnameとほぼ同じです。各フォームコントロールはformControlNameディレクティブは、私たちはそれが/あなたのclassformControlNameformGroupName意志でインスタンスが存在するのでだから、あなただけの外側のモデルをバインドする必要が外側フォーム上のコントロール

を登録することができます適用されます内側の要素の世話をする。

+0

これはすべて非常に混乱しています。例えば、 'formControlName'がコンポーネントのクラスのプロパティとして生成されるかどうかは、私には明らかではありません – davejoem

関連する問題