在另一个formArray中禁用反应式窗体控件,可以通过以下步骤实现:
以下是一个示例代码:
import { Component, OnInit } from '@angular/core';
import { FormArray, FormBuilder, FormGroup } from '@angular/forms';
@Component({
selector: 'app-example',
template: `
<form [formGroup]="myForm">
<div formArrayName="myFormArray">
<div *ngFor="let control of myFormArray.controls; let i = index">
<input [formControlName]="i" [disabled]="isDisabled(i)">
</div>
</div>
</form>
`,
})
export class ExampleComponent implements OnInit {
myForm: FormGroup;
constructor(private formBuilder: FormBuilder) {}
ngOnInit() {
this.myForm = this.formBuilder.group({
myFormArray: this.formBuilder.array([
this.formBuilder.control('Value 1'),
this.formBuilder.control('Value 2'),
this.formBuilder.control('Value 3'),
]),
});
}
get myFormArray(): FormArray {
return this.myForm.get('myFormArray') as FormArray;
}
isDisabled(index: number): boolean {
// Check conditions to determine if the control should be disabled
// return true to disable, false to enable
return index % 2 === 0; // Example: Disable every other control
}
}
在上述示例中,我们创建了一个带有formArray的反应式窗体,并在HTML模板中使用*ngFor指令循环遍历formArray的控件。我们还通过传递索引到isDisabled()方法来判断是否应该禁用每个控件。在isDisabled()方法中,你可以根据你的需求定义禁用控件的条件。
请注意,这里没有提到任何特定的腾讯云产品或链接,因为这个问题与云计算品牌商无关。这是一般性的Angular代码示例,可以在任何云计算环境中使用。
领取专属 10元无门槛券
手把手带您无忧上云