对于比较密码,我正在使用rxwebvalidators,当我在该ConfirmPassword字段之后的密码字段中输入值时,它工作正常。如果输入文本时ConfirmPassword字段值不正确,则FormControl无效。
但是问题是,如果两个控件具有相同的值,并且我更改了密码字段中的值,则ConfirmPassword字段将无效。但是在实际情况下,它必须是无效的。
我在本地项目中尝试过,还在stackblitz上创建了一个小副本供您参考:https://stackblitz.com/edit/angular-nriznm?file=src%2Fapp%2Fapp.component.ts
我执行以下操作:
this.userForm = this.formBuilder.group({
password:[''],
confirmPassword:['',RxwebValidators.compare({fieldName:'password'})]
})
下面是我的html代码:
<form [formGroup]="userForm">
password <input type="text" formControlName="password"/><br/>
compare password <input type="text" formControlName="confirmPassword"/>
{{userForm.controls.confirmPassword.errors | json}}
</form>
我花了超过一个小时的时间来查明原因,但没有成功。请帮助我做错了。它正在rxweb.io网站上运行:https://rxweb.io/form-validations/compare/validators#basiccomparevalidation
答案 0 :(得分:2)
现在可以正常工作了,我忘了在主模块中导入“ RxReactiveFormsModule”。
在主模块中注册“ RxReactiveFormsModule”的代码:
import { RxReactiveFormsModule } from "@rxweb/reactive-form-validators"
@NgModule({
imports: [ BrowserModule, FormsModule,ReactiveFormsModule,RxReactiveFormsModule ],
declarations: [ AppComponent, HelloComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
正在研究stackblitz:https://stackblitz.com/edit/angular-nriznm?file=src%2Fapp%2Fapp.module.ts