2016-04-21 30 views
1

我不確定disable-validation-message做了我想要的,但我發現它足夠接近。替換爲Angular2中的禁用驗證消息

基本上我尋找一種方法,以防止從角度上通過formBuilder限定的Control輸入設定的錯誤和使用maxlength爲好。

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

你的意思是'ng-xxx'類不應該添加到元素中?他們有什麼問題? –

+0

'ng-xxx'類是css的目標,我只是不想在'control.errors'中出現錯誤消息 –

回答

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] 
}) 

這可能會實現b UT極有可能突破最終

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

據我所知目前maxlengthconstructor(@Attribute('maxlength') ...)只通過靜態值讀取。使其成爲一個約束值可能能夠解決。除此之外,驗證器適用於[ngControl][maxlength]選擇器。

+0

我得到這個'不能綁定到'maxlength',因爲它不是已知的本地屬性' –

+0

對,應該是'[attr.maxlength]' –

+1

這個工程,**原始**就夠了。感謝您幫助我愚弄角色的選擇。 ;) –