У меня есть форма или модель книги и книги:
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'
. затем щелкните другие поля имени, другие поля имени не могут быть отредактированы. Это кажется разумным, но мне это просто не нужно.