比较角度反应形式的密码

时间:2019-01-01 06:58:36

标签: angular 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

1 个答案:

答案 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