4

私は formgorup で angular 5 を使用しており、フォームに基づいて動的コンポーネントを作成するためにコントロールを反復したいと考えています。フォーム フィールドは外部データ サービス (データベースなど) によって提供されます。

以下のように宣言されています

check = new FormGroup({
    firstName : new FormControl(true),
    lastName : new FormControl(false)
  });

コントロールを反復する方法を説明しているこれを見つけましたが、機能しません。私は使用しようとします:

for(let item of this.check.controls){}

これはクロムのデバッグです:

未定義のプロパティ「長さ」を読み取ることができません

this.check.controls.keys または keys() にアクセスできません

キーを反復するにはどうすればよいですか?

ありがとう

4

4 に答える 4

0

この機能は私にとってかなりうまく機能します

public static ResetForm(form: FormGroup, config = {}) {
    const controls: string[] = Object.keys(form.controls);

    controls.forEach(key => {
      if (config[key] && config[key]["default"])
        form.get(key).setValue(config[key]["default"]);
      else form.get(key).setValue("");
      form.get(key).setErrors(null);
      form.get(key).markAsTouched();
    });
  }

空の文字列以外のデフォルト値を設定する場合は、次のように構成オブジェクトを使用します

ResetForm(this.form, {
      categories: {
        default: []
      }
    });
于 2019-11-24T18:59:47.887 に答える