gpt4 book ai didi

angular - Angular FormArray 中的唯一项目名称验证器

转载 作者:行者123 更新时间:2023-12-03 00:31:35 25 4
gpt4 key购买 nike

我想验证项目名称文本必须是唯一的。我已经引用了 SO 链接,但链接示例对我不起作用。我试图对各自的答案发表评论,但我没有太多的声誉来这样做。

链接 1: Angular - Uniqueness validator in FormArray

链接 2: Unique value validation in FormControl of FormArray

下面是我当前的代码:

import { Component,OnInit } from '@angular/core';
import { FormGroup,FormBuilder,FormArray } from "@angular/forms"
import { RxwebValidators } from "@rxweb/reactive-form-validators"


@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit {

public uniqueRowForm: FormGroup;

constructor(private fb:FormBuilder){

}


ngOnInit() {
this.uniqueRowForm = this.fb.group({
items:this.fb.array([]),
});
this.adduserItem();
}



adduserItem(){
let items = <FormArray>this.uniqueRowForm.controls.items;
items.push(this.fb.group({
name:['',RxwebValidators.unique()]
}));
}




}

下面是我的 HTML 代码:

<button (click)="adduserItem()">Add Item </button>
<table class="table">
<thead>
<tr>
<th scope="col">Item</th>
</tr>
</thead>
<tbody>
<tr [formGroup]="item" *ngFor="let item of uniqueRowForm.controls.items.controls;let i = index;">
<td><input type="text" formControlName="name" class="form-control" />
<span *ngIf="item.controls.name.errors.unique">not unique</span>
</td>
</tr>
</tbody>
</table>

Stackblitz 示例,但未按照我的要求工作:https://stackblitz.com/edit/angular-paqxqs?file=src%2Fapp%2Fapp.component.html

请帮忙。

最佳答案

只需在 errors 对象末尾添加 ? 即可确保它不是未定义的。

<span *ngIf="item.controls.name.errors?.unique">not unique</span>

关于angular - Angular FormArray 中的唯一项目名称验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53995239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com