Я расширил свой комментарий об использовании директивы (см. это SO ), потому что это немного сложно для ответа в комментарии.
Если мы объявим переменную
checkList:boolean[]=[]
И использовать [(ngModel)], - нам нужно использовать [ngModelOptions] = "{standalone: true}"
<input type="checkbox"
[(ngModel)]="checkList[empIndex]"
[ngModelOptions]="{standalone:true}"/>
Мы используем просто
<input type="text" formControlName="lastName"
[enableControl]="checkList[empIndex]">
, который вы видите в раздвоенном стеке
Обновлено кнопка "submited" может быть отключена с помощью просто
<button [disabled]="!empForm.valid" type="submit">Submit</button> //(*)
Но, конечно, когда мы создаем нам нужно использовать валидаторы
newEmployee(): FormGroup {
return this.fb.group({
firstName: ["",Validators.required],
lastName: [{value:'', disabled:true},Validators.required],
option1: [{value:false, disabled:true}],
option2: [{value:false, disabled:true}],
option3: [{value:false, disabled:true}],
skills: this.fb.array([]),
options: this.fb.array([])
});
}
(*) Если нам нужно, чтобы в массиве было несколько элементов, нам нужно использовать
<button [disabled]="!empForm.valid || !employees.length"
type="submit">Submit</button>