我使用了角度2.3.1,我在组件模板中有以下html元素:
<input class="form-control" type="text" id="password" name="password"
placeholder="Password" [attr.required]="requirePasswd ? true : null"
[(ngModel)]="password">
如果这是一个新用户(id为空),那么我想要输入密码。如果不是新用户,则密码是可选的。
条件属性正在运行,但在有条件地使用时,即使该字段仍然没有值,也会应用ng-valid类。
如果我对所需属性进行硬编码,则angular2会将类设置为ng-invalid,但是当我将其设置为条件且requirePass为true时,即使该元素仍然无效,该元素也始终具有ng-valid类
答案 0 :(得分:3)
查看Angular 2 source。您将看到required实际上是一个指令,因此您需要使用该语法在此处设置绑定。
它也需要一个值,它不仅必须存在,所以不是传入null而是传递true / false。
[required]="requirePasswd"