Angular2 Dart - 形式验证器validateEqual

时间:2016-09-06 10:01:41

标签: validation angular dart

我尝试验证密码确认输入,但我找不到正确的内置验证器。

我试过了:

<input id="passwordConfirmation" name="passwordConfirmation"    class="form-control" type="password"
                       [(ngModel)]="form.passwordConfirmation" ngControl="passwordConfirmation" #passwordConfirmation="ngForm"
                       required pattern="{{form.password}}">

但是pattern="{{form.password}}"不起作用。

我是否必须实施自定义验证器?

感谢您的帮助。

1 个答案:

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