Html 如何在ngModel中使用两个属性?
在angular 2中的表单中,我用类的属性填充了ngModel。但我有两个额外的属性,例如,当用户填写电子邮件输入时,我需要两个属性获取此值(电子邮件和用户名),当填写密码输入时,两个属性获取此值(密码和确认密码)。 它的语法是什么?我尝试了这个,但它发送错误:Html 如何在ngModel中使用两个属性?,html,angular,Html,Angular,在angular 2中的表单中,我用类的属性填充了ngModel。但我有两个额外的属性,例如,当用户填写电子邮件输入时,我需要两个属性获取此值(电子邮件和用户名),当填写密码输入时,两个属性获取此值(密码和确认密码)。 它的语法是什么?我尝试了这个,但它发送错误: <input [(ngModel)]="createuser.pasword;createuser.confirmPassword" name="password" type="password" minlength="6" r
<input [(ngModel)]="createuser.pasword;createuser.confirmPassword" name="password" type="password" minlength="6" required>
非常感谢您以简单的方式提供的帮助。我不认为角度支持将
ngModel
绑定到两个属性。但通过将ngModel
和(event)
组合起来,可以完成您的任务,如下所示:
- 通过
绑定邮件属性[(ngModel)]
- 然后使用
事件侦听将用户名绑定到邮件李>输入
<input type="text" [(ngModel)]="mail" (input)="setUserName($event)">
<p>
mail {{mail}}
</p>
<p>
username {{UserName}}
</p>
虽然这能正常工作,但我不明白使用它的必要性。正如上面评论中所说的,您可以将字段留空,然后在后端正确处理它。经过深思熟虑,我发现我可以在ts组件中这样做:
this.createuser.mail=this.createuser.UserName;
this.createuser.confirmPassword=this.createuser.pasword;
不确定,但我认为这是不受支持的。如果你打算使用电子邮件作为用户名,只需省去用户名字段,并在你的后端适当设置它。至于密码,如果您想用一个输入字段设置password和confirmpassword,那么confirmpassword字段甚至在那里都没有意义。使用两个单独的字段。谢谢Abdelaziz,是的,你是对的,但我需要在前面这样做。
export class CreateUser{
mail: string;
UserName: string;
password: string;
confirmPassword: string;
constructor() { }
setUserName(event) {
this.UserName = event.target.value;
// or
// this.UserName = this.mail;
}
}
this.createuser.mail=this.createuser.UserName;
this.createuser.confirmPassword=this.createuser.pasword;