我有这个表格或表格数组和书籍模型:
class Book {
id: number;
active: boolean;
name: string;
}
bookForm: FormGroup;
results: Book[];
ngOnInit() {
this.results = [
{id: 1, active: true, name: aaa},
{id: 2, active: true, name: bbb},
{id: 3, active: true, name: ccc},
];
this.bookForm = this.fb.group({
bookArray: this.fb.array(results.map(res => this.fb.group({
id: [res.id],
active: [res.active],
name: [res.name, {
validators: [BookValidators.required(`name`)],
asyncValidators: [BookValidators.unique(`name`, (value: string) => {
return this.service.checkNameUnique(value, res.id);
})],
updateOn: 'blur'
}]
})))
});
}
所以我用现有结果启动 formArray 并显示这个 formArray 表
id active name
1 true aaa
2 true bbb
3 true ccc
在此表中,名称列是可编辑的。当我编辑'aaa'
到'bbb'
时,表单验证显然会失败,因为它具有唯一的验证updateOn: 'blur'
。问题是:如果我保持这个变化:'aaa' -> 'bbb'
。然后单击其他名称字段,其他名称字段无法编辑。这似乎是合理的,但我只是不需要它。