角度での反応形式の配列
3748 ワード
この記事では、FormatArrayの妥当性検査を作成して適用するプロセスを紹介します
どのような配列ですか
FormatArrayは抽象グループコントロール、FormControl、FormControl、または別のFormatArrayのコレクションを管理する責任があります.FormArrayは、FormControlとFormgroupとともに、角度でフォームを定義するために使用される3つの基本的なビルディングブロックの一つです.
注意:ドロップダウンの場合、アングルsyncfusionを使いました.パッケージをインストールしてパッケージをインポートしてください.他のパッケージも使用できます フォーム配列を作成する手順をさらに表示します a . importモジュールとreactiveformsモジュールをアプリケーションにインポートします.モジュールです.tsファイル.
b .コンポーネントファイルで、formgroup変数を追加しました.
g .フォーム配列で関数と呼ばれる関数があります
外部フォーム制御
ライブプレビューによるM .コード全体はGithubにあります.
githubで利用できるコード:-[(https://github.com/justinthadathil/AngularFormArray ]
ライブプレビューhttps://justinthadathil.github.io/AngularFormArray/ ]
どのような配列ですか
FormatArrayは抽象グループコントロール、FormControl、FormControl、または別のFormatArrayのコレクションを管理する責任があります.FormArrayは、FormControlとFormgroupとともに、角度でフォームを定義するために使用される3つの基本的なビルディングブロックの一つです.
注意:ドロップダウンの場合、アングルsyncfusionを使いました.パッケージをインストールしてパッケージをインポートしてください.他のパッケージも使用できます
b .コンポーネントファイルで、formgroup変数を追加しました.
addMemberItemInputForm = {} as FormGroup;
c .コンストラクタでのFormBuilderの呼び出しprivate formBuilder: FormBuilder
d .現在のフォームコントロールを初期化します.コントロールに必要な妥当性検査を追加します.ここでは、詳細は以下のコードのフォーム配列で宣言され、5行だけを追加できるフォーム配列に対する共通の検証を追加しました.削除または変更できます.createAddMemberItemInputForm(){
this.addMemberItemInputForm = this.formBuilder.group({
memberName: ['', Validators.required],
itemType: ['', Validators.required],
itemDetails: this.formBuilder.array(
[this.createEmpFormGroup()],
[Validators.required, Validators.maxLength(5)])
});
}
E .オブジェクトをプロパティにバインドするには、getterを使用しますcreateAddMemberItemInputForm()
MemberNameオブジェクトのプロパティをバインドしますget memberName()
get memberName() {
return this.addMemberItemInputForm.get('memberName');
}
f .すべてのコントロールでこのようにgetter関数を作成します.g .フォーム配列で関数と呼ばれる関数があります
this.createEmpFormGroup()
これは、コードベローのようなフォーム配列のコントロールを初期化するために使用されますcreateEmpFormGroup(){
return this.formBuilder.group({
itemName: ['', [Validators.required]],
quantity: ['', [Validators.required, Validators.max(5)]],
price: ['', [Validators.required]]
})
}
h .フォーム配列のコントロールの追加と削除行を作成するaddEmployee() {
let newMem = this.createEmpFormGroup();
this.itemDetails.push(newMem);
}
deleteEmployee(i: number) {
this.itemDetails.removeAt(i);
}
I . html側に来るフォームグループとFormControlName外部フォーム制御
<div class="col-6">
<label class="form-label">Enter Member Name</label>
<input type="text" class="form-control" placeholder="Member Name" formControlName="memberName">
<label *ngIf="memberName?.invalid && isValidFormSubmitted != null && !isValidFormSubmitted" class="error">
Team name is required.
</label>
</div>
フォームアレイ用<tbody formArrayName="itemDetails">
<tr *ngFor="let item of itemDetails.controls; let i = index" [formGroupName]="i">
<td>
<input type="text" class="form-control" placeholder="Enter Item Name" formControlName="itemName">
<label *ngIf="itemDetails.controls[i].get('itemName')?.errors?.['required'] && isValidFormSubmitted != null && !isValidFormSubmitted" class="error">
Employee name required.
</label>
</td>
<td>
lこのステップに到達すると、ほぼ適切な検証を行うフォーム配列が実装されます.ライブプレビューによるM .コード全体はGithubにあります.
githubで利用できるコード:-[(https://github.com/justinthadathil/AngularFormArray ]
ライブプレビューhttps://justinthadathil.github.io/AngularFormArray/ ]
Reference
この問題について(角度での反応形式の配列), 我々は、より多くの情報をここで見つけました https://dev.to/justinthadathil/formarray-in-angular-1cloテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol