Я разрабатываю форму в Angular 7, я использую Reactive Form
, в которой FormArray
.
В каждом FormArray
есть элемент управления
<select></select>
Это структура формы
this.form = this.formBuilder.group({
'listid': ['', [Validators.required]],
'segmentName': ['', [Validators.required]],
'description': ['', [Validators.required]],
listFieldArray: this.formBuilder.array([])
});
А это структура FormArray
addListFieldsFormGroup(name: string, value: string): FormGroup {
return this.formBuilder.group({
'condition': ['', [Validators.required]],
'name': [name],
'value': [value, [Validators.required]],
'type': ['1', [Validators.required]],
'operator': ['', [Validators.required]],
'operand': ['', [Validators.required]]
});
}
condition
в FormArray является элементом управления Select, при изменении этого выбора я хочу показать Div в соответствии со значением
<div class="clr-row">
<clr-select-container>
<select clrSelect formControlName="sentCondition">
<option value="">Select </option>
<option value="custom">Custom</option>
<option value="between">Between</option>
<option value="lessThenEqual">Less then or Equal</option>
<option value="moreThen">More then</option>
</select>
</clr-select-container>
</div>
<div class="clr-row" *ngIf="sentCondition==='custom'">
<div class="clr-col-4 ">
<input clrInput placeholder="From Day" type="date" formControlName="customDayFrom" />
</div>
<div class="clr-col-4 ">
<input clrInput placeholder="To Day" type="date" formControlName="customDayTo" />
</div>
</div>
<div class="clr-row" *ngIf="sentCondition==='between'">
<div class="clr-col-4 ">
<input clrInput placeholder="From Day" formControlName="customDayFrom" />
</div>
<div class="clr-col-4 ">
<input clrInput placeholder="To Day" formControlName="customDayTo" />
</div>
</div>
<div class="clr-row" *ngIf="sentCondition==='lessThenEqual' || sentCondition==='moreThen'">
<div class="clr-col-4 ">
<input clrInput placeholder="Day" formControlName="customDayFrom" />
</div>
</div>
Он работал с [(ngModel)]
, но теперь в Angular 7 он устарел с Реактивной формой.