我尝试验证密码确认输入,但我找不到正确的内置验证器。
我试过了:
<input id="passwordConfirmation" name="passwordConfirmation" class="form-control" type="password"
[(ngModel)]="form.passwordConfirmation" ngControl="passwordConfirmation" #passwordConfirmation="ngForm"
required pattern="{{form.password}}">
但是pattern="{{form.password}}"
不起作用。
我是否必须实施自定义验证器?
感谢您的帮助。
答案 0 :(得分:0)
最近有一个封闭的问题:https://github.com/angular/angular/issues/7393。
没有它,似乎绑定模式的唯一方法是实现自定义验证器。像
这样的东西const MY_PATTERN_VALIDATOR =
const Provider(NG_VALIDATORS, useExisting: MyPatternValidator, multi: true);
@Directive(
selector:
'[myPattern][ngControl],[myPattern][ngFormControl],[myPattern][ngModel]',
providers: const [OK_PATTERN_VALIDATOR],
host: {
'pattern': 'value'
})
class MyPatternValidator implements Validator {
ValidatorFn _validator;
String value;
Map<String, dynamic> validate(AbstractControl c) {
return _validator(c);
}
@Input()
set myPattern(String value) {
_validator = Validators.pattern(value);
this.value = value;
}
}