私は反応型フォームをFormBuilderを使用してインスタンス化しました。このフォームを使用して、新しい従業員を更新または追加したいと考えています。私は現在選択されている従業員があるかどうかを確認し、その従業員のインターフェースフィールドをフォームの値として使用しているかどうかを確認する式をformBuilderコンストラクターに追加しようとしています。特定のFormControlの値として返します。私editEmployee機能で角度反応型フォームのFormControlを動的値にバインド
'EMP_NM': [this.selectedEmp ? this.selectedEmp.EMP_NM : '', Validators.required],
、その後を::
editCashier(employee: IEmployee) {
this.selectedEmp = employee;
this.empForm.reset();
console.log(this.selectedEmp.EMP_NM);
}
私はこれを行うとHTMLでEMP_NM入力フィールドに表示される値は取得していない私が試したものを
更新しました。私は私のeditEmployee関数でsetTimeout()を設定しようとしましたが、どちらもうまくいきませんでした。何がここで間違っているかもしれないか?
formBuilderのグループ関数を使用して、コンポネントのコンストラクタ内のempFormを初期化します。それを別の関数に移動してから、editEmployee関数が呼び出されてフォームを再初期化するたびにその関数を呼び出すと役立ちますか?
フォームに約30種類のフォームコントロールがあると、それほど実用的ではありません...従業員が存在する場合はフォームをバインドする方法はありませんか、空の値ですべてのコントロールを初期化する方法はありますか? – user2094257
次に、 'Object.getOwnPropertyNames(yourNewFOrmValues).map((key:string)=> {//キーはあなたのコントロールです')で何かが必要です。これはフォームの配列を使ってループして値を設定する方が簡単です。 – Swoox