0
オブジェクトの配列データを入力制御に動的に割り当て、更新を元にロジックを実装する必要があります。配列を更新したいだけでなく、重複したエントリを持つコントロールに入力された名前/データがあるかどうかを確認する検証を開始したい。 私はReactiveFormモジュールを使って検証しました。成功 検証に私が直接APIに更新された構造を渡すことができるように、私は同じアレイ構造を作成する方法angular2(ReactiveForms)で動的カスタム検証を追加するにはどうすればよいですか?
- - しかし、私は2つの問題の下に直面していますか?
- 私は配列オブジェクトからformControlNameにidを割り当てる方法は、現在ループインデックスを割り当てています。
ここplunkar参照 - https://plnkr.co/edit/RSBpT0sFSI1GDCp6K7VR?p=preview
コンポーネント:
@Component({
selector: 'my-app',
template: `
<div>
<h3> Custom Group Validation</h3>
<form [formGroup]="myForm">
<div class="left">
names: <br>
<div formArrayName="names">
<div *ngFor="let item of namesArray.controls; let i = index">
<input type="text" [formControlName]="i">
<button (click)="removeAt(i)">X</button><br>
</div>
</div>
<div *ngIf="namesArray.hasError('duplicate')">
duplicate entries
</div>
<pre>Array value: <br>{{namesArray.value | json}}</pre>
</div>
</form>
</div>
`
})
クラス(抽象):
namesArray:FormArray = new FormArray([], this.customGroupValidation );
dataArray: { custId: number, customerName: string }[] = [
{ custId: 101, customerName: 'John' },
{ custId: 102, customerName: 'Mike' },
{ custId: 103, customerName: 'Julia' }];
ngOnInit():void{
for(let ele of this.dataArray){
this.namesArray.push(
new FormControl(ele.customerName)
);
}
}
どれヘルプおくります!