我在使用@ angular / material的md-input-containers和reactive forms模块时遇到了问题.
我正在使用FormBuilder的FormGroup创建一个包含三个md输入的登录表单,这些输入都与值绑定.那里的一切都很好.
我的问题是在ngSubmit函数上,如果输入的凭据无效,我将重置表单.使用FormGroup的.reset()方法会将值重置为默认值,但md-input-containers中的浮动标签不会重置为原始位置,因为它们应位于空字段上.我猜材料设计指令正在寻找一个模糊事件来更新这个,但我不知道,我不知道如何强制这种情况发生.
这是ngSubmit函数:
submitForm(username: string,password: string,companyID: any):void { this.userService.login(username,password,companyId) .then(() => { this.router.navigate(['main']); }) .catch(() => { this.loginForm.reset(); }) }
并且在调用this.loginForm.reset()时,表单将重置为默认值(空字符串),但标签仍将浮动:
解决方法
尝试使用md-input控件而不是md-input-container中包含的输入. 它对我有用.