使用[attr.required]

时间:2018-08-28 14:20:25

标签: angular angular5 angular6 angular4-forms

我只有一个输入定义为 FormControl ,并绑定到 ngModel 。 它看起来如下:

HTML:

<!-- If this input is empty the POB input should be required -->
<input type="text"
           id="addrs_house"
           name="addrs_house"
           #addrs_house="ngModel"
           required
           [ngStyle]="{hasError:addrs_house.invalid)}"
           [(ngModel)]="model.house">
 <!-- This input is dynamicaly required, dependant on the house input -->        
<input type="text"
           id="addrs_po"
           name="addrs_po"
           [(ngModel)]="model.pob"
           #addrs_po="ngModel"
           [attr.required]="model.house ? null : ''"
           [ngStyle]="{hasError:addrs_po.invalid}">

TS:

// In the component Im refencing the FormInput model as so
@ViewChild('addrs_po') addrs_po: ElementRef;

问题:
确实将 required 属性添加到 POB输入,但是FormControl的 ngModel不会得到更新

1 个答案:

答案 0 :(得分:0)

您应该使用属性绑定而不是属性绑定:

[required]="!model.house"

这将正确更新所需的状态