在Angular2中替换disable-validation-message

时间:2016-04-21 10:42:50

标签: angular angular2-forms

我不确定disable-validation-message是否符合我的要求,但我发现它足够接近。

基本上我正在寻找一种方法来防止角度设置由Control定义的formBuilder输入设置错误,并使用maxlength

<input type="text" ngControl="foo" maxlength="500" />

1 个答案:

答案 0 :(得分:1)

<强>更新

const DUMMY_MAX_LENGTH_VALIDATOR = CONST_EXPR(
new Provider(NG_VALIDATORS, {useExisting: forwardRef(() => DummyMaxLengthValidatorr), multi: true}));

@Directive({
  selector: '[maxlength][ngControl],[maxlength][ngFormControl],[maxlength][ngModel]',
})
export class DummyMaxLengthValidator {
  validate(control) {}
}

而不是你的组件添加

@Component({
  ...
  providers: [DUMMY_MAX_LENGTH_VALIDATOR]
})

<强>原始

这可能会奏效但最终可能会破裂

<input type="text" ngControl="foo" [attr.maxlength]="'500'" />

maxlength读取当前constructor(@Attribute('maxlength') ...)的AFAIK,它只传递静态值。使其具有约束力值可能能够解决。除此之外,验证器也适用于[ngControl][maxlength]选择器。