Class 当所需属性为条件且值仍然为空时,Angular2将ng有效类应用于字段

Class 当所需属性为条件且值仍然为空时,Angular2将ng有效类应用于字段,class,templates,angular,required,Class,Templates,Angular,Required,我使用的是angular 2.3.1,组件模板中有以下html元素: <input class="form-control" type="text" id="password" name="password" placeholder="Password" [attr.required]="requirePasswd ? true : null" [(ngModel)]="password"> 如果这是一个新用户(id为空),那么我需要密码。如果不是新用户,则密码是可选的 条件

我使用的是angular 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,但当我将其设置为条件且RequiredPass为true时,即使该类仍然无效,该元素也始终具有ng invalid类。

请查看Angular 2。您将看到required实际上是一个指令,因此您需要使用该语法在此处设置绑定

它还需要一个值,它不一定要存在,所以您可以只传递true/false,而不是传递null

[required]="requirePasswd"

您是否尝试使用[required]而不是[attr.required]?换句话说,传递
布尔值
其他内容,例如:
[(ngModel)]=“guest.emailAddress”#emailAddress=“ngModel”[email]=“!!emailAddress.value”
(在电子邮件不为空时验证电子邮件),谢谢Steveado。