У меня есть массив форм, генерирующий элементы управления формой для каждой строки с кнопкой.
Мне нужно отключить связанную кнопку, если связанная группа форм в массиве форм недопустима.
Кнопка:
<button mat-raised-button color="warn" type="submit" color="warn" (click)="addDist(element, i)">
<mat-icon>add</mat-icon> Add
</button>
С формой массива:
this.arrayGroup = new FormGroup({
distribution: new FormArray(this.dataSource.data.map(x => new FormGroup({
actual_date: new FormControl('', Validators.required),
note: new FormControl(''),
kit: new FormControl('', Validators.required)
})
))
});
Так что в каждой строке мне нужно отключить ее, пока не заполнятся date
и kit
.Другие кнопки должны оставаться недействительными, если их формы не заполнены.
Я пытался:
<button mat-raised-button color="warn" [disabled]="!arrayGroup.get('distribution')).at(i).valid" type="submit" color="warn" (click)="addDist(element, i)">
<mat-icon>add</mat-icon> Add
</button>
Но получил ошибку:
Uncaught (в обещании): Ошибка: Ошибки синтаксического анализа шаблона: Ошибка синтаксического анализатора: неожиданный токен ')' в столбце 32 в [! ArrayGroup.get ('distribution')). At (i) .valid]
Затем я попытался:
[disabled]="!arrayGroup.distribution.at(i).valid"
И я получил:
ОШИБКА TypeError: Невозможно прочитать свойство 'at' из неопределенного в Object.eval [as updateDirectives]