Angular2 中禁用验证消息的替换

Replacement for disable-validation-message in Angular2

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

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

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

更新

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'" />

AFAIK 当前 maxlengthconstructor(@Attribute('maxlength') ...) 读取,它只传递静态值。将其设置为绑定值可能可以解决。除此之外,验证器应用于 [ngControl][maxlength] 选择器。