我在我的应用程序中使用以下代码与反应形式。
如果我取消注释[multiple]
行,则选择... 选项不会将dformControl
表单控件对象设置回状态INVALID
。
dformControl.multiple
顺便返回false
。即使我将注释行更改为[multiple]="false"
,仍然切换回选择... 选项不会将表单控件状态设置为INVALID
。
<select class="form-control"
[id]="dformControl.key"
[formControlName]="dformControl.key"
/*[multiple]="dformControl.multiple"*/>
<option *ngIf="!dformControl.value"
value="">
Choose ...
</option>
<option *ngFor="let opt of dformControl.options"
[value]="opt.value"
[selected]="dformControl.value == opt.value">
{{opt.label}}
</option>
</select>
答案 0 :(得分:7)
绑定到选择级别的multiple
属性为布尔值isMultiple。然后你可以改变它,选择也会改变。看看这个,我用一个按钮改变它。 plnkr
<select formControlName="cars" [multiple]="isMultiple">
<option></option>
<option *ngFor="let car of cars" >{{car}}</option>
</select>
在添加多个属性时,它似乎影响了所需的验证器。我能够添加一个额外的验证器,它按预期工作。
Validators.compose([Validators.required,Validators.pattern('.+')]