2016-11-17 8 views
1

ページの読み込み時にすべてのコントロールを無効にし、ユーザーが反応型の追加ボタンをクリックしたときにすべてのコントロールを有効にしたかったのです。だからこれを達成するために私は[disabled] htmlテンプレートの属性を使用しましたが、コンソールで以下の警告メッセージが表示されています。コントロールを動的に無効にする際に警告メッセージが表示されます。angular2

警告:

あなたは反応型とのdisabled属性を使用しているように見えます。コンポーネントクラスでこのコントロールを設定するときに無効にした場合、 が無効に設定されていると、実際に無効な属性が のDOMに設定されます。この方法を使用して、「変更後に変更された」エラーを回避することをお勧めします。

Example: 


    form = new FormGroup({ 
     first: new FormControl(
    {value: 'Nancy', disabled: true},Validators.required), 
     last: new FormControl('Drew', Validators.required) 
     }); 

この警告メッセージを回避し、私の要件を達成するためにどのように私を助けてください。 GünterZö[email protected]

+0

警告はそれをすべて伝えませんか?テンプレート駆動型と反応型を混在させることは、通常はお勧めできません。 –

答えて

0

が正しいか、警告は、プログラム/有効例では、関数.disable()経由のいずれかとして作成上のコントロールを無効にし、コントロールごと、またはトップレベルのところでどちらか.enable()機能を有効にする必要があることを言っています(あなたが偽を指定しない限り)伝播します。

反応形式の[disabled]にバインドすると、動作が期待どおりに動作しない場合があります。

無効({onlySelf、emitEvent}?:{onlySelf?:ブール、emitEvent ?: ブール}):AbstractControlドキュメントから

空隙制御を無効にします。つまり、制御は の検証チェックから免除され、 の集約値から除外されます。そのステータスはDISABLEDです。

コントロールに子がある場合は、すべての子が無効になり、モデル を維持します。

イネーブル({onlySelf、emitEvent}?:{onlySelf?:ブール、emitEvent?: ブール}):ボイドがコントロールを有効にします。これは、コントロールが妥当性チェックに含まれる とその親の集約値になることを意味します。 ステータスは、その値とバリデータに基づいて再計算されます。

コントロールに子がある場合、すべての子が有効になります。

関連する問題