2017-07-07 72 views
0

如何对自定义验证程序使用md-error?需要的工作..大!但我的自定义验证器呢?angular2 - 如何在自定义验证程序中使用md-error

<md-input-container> 
    <input mdInput formControlName="etr" > 

    <md-error *ngIf="WHAT!!!!!!!!!!!!!!!!!!!"> 
       ETR must be >=0 or <1 
    </md-error> 
    <md-error *ngIf="myForm.controls['etr'].hasError('required')"> 
      <strong>required</strong> 
    </md-error> 


</md-input-container> 

这里是我的脚本类型:

 this.myForm = fb.group({ 
     etr: [,[Validators.required,ModelValidators.validEtr]], 

    }) 

我没有显示错误下划线,但我怎么显示的信息?

我试过,但没有奏效:

*ngIf="myForm.controls['etr'].hasError('validEtr')" 

下面是我validator.ts文件

import { FormControl } from '@angular/forms'; 

export class ModelValidators{ 

static validEtr(control: FormControl){ 
     var valid: any; 
     valid=null; 
     if (control.value>=0 && control.value<1){ 
      valid = true; 
     } 
     return valid ? null : { validLambda: true }; 

    } 
} 
+0

请张贴关于'ModelValidators.validEtr'代码? – Pengyy

+0

我添加了validator.ts文件..它的工作原理..表单被禁用,直到有效的输入,但我只是不能显示错误消息。尽管我得到了一条红线。 – Tampa

回答

2

validLambda是当验证失败从自定义验证返回的错误类型。

因此该解决方案是如下:

*ngIf="myForm.controls['etr'].hasError('validLambda')" 
+0

它的工作,但如果我有多个定制?我怎么能说出不同? – Tampa

+0

@Tampa你是指单个元素上的多个自定义验证器吗?您可以通过自定义验证器返回的错误类型来区分它们。希望我明白你的意思。 :-) – Pengyy

相关问题