我的被动表单出现了问题 - 我的repeatPassword没有刷新。如果我在"密码"标签,然后在" repeatPassword"再次在"密码"第二个没有标记为无效。
所以我决定做那样的事情:
if (this.form.get('password').value !== this.form.get('passwordRepeat').value) {
this.form.get('passwordRepeat').setErrors({'invalid': true});
}
if (this.form.get('password').value === this.form.get('passwordRepeat').value &&
!this.form.get('passwordRepeat').hasError) {
this.form.get('passwordRepeat').setErrors({'invalid': null});
}
代码看起来很好,直到我尝试将无效设置为null - 反应形式将其视为错误,因此我无法提交并且ngif显示错误。
当我尝试接受规则时会发生同样的错误 - 取消选中复选框并不会将其标记为无效。
是否有任何选项可以强制验证器再次运行?
答案 0 :(得分:0)
你试过设定吗?
this.form.get('passwordRepeat').setErrors({'invalid': null});
代替
this.form.get('passwordRepeat').setErrors({'invalid': false});
?
同样data: data.slice(0, 5)
应该正常工作。
See this answer on SO解释了如何在组件中设置验证错误。