比较 angular 反应形式的密码

Compare password in angular reactive forms

为了比较密码,我正在使用 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

现在可以使用了,我忘记在主模块中导入 '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