2017-12-15 2 views
-1

지금까지 배운 내용에서 유효성 검사 오류는 html로 작성되었지만 사용자 정의 오류를 반환하는 방법은 없습니다. 예를 들어 나는각도 지시문에서 사용자 정의 오류를 반환합니다.

@Directive({ 
    selector: '[verifySalaryUp]', // Attribute selector 
    providers: [ 
    { provide: NG_VALIDATORS, useExisting: forwardRef(() => VerifySalaryUpDirective), multi: true } 
    ] 
}) 
export class VerifySalaryUpDirective implements Validator { 

    @Input('status') status: any; 
    @Input('oldSal') oldSalary; 

    constructor() { 
    } 

    validate(control: AbstractControl): {[key: string]: any} { 
    let newSalary = control.value; 
    if (this.status === 'N') { 
     return null; 
    } else { 
     if (Number(newSalary) < Number(this.oldSalary)) { 
     return { 
      lowSalary: { 
      valid: false 
      } 
     } 
     } else { 
     return null; 
     } 
    } 
    } 

} 

은 HTML 부분은

<span *ngIf="salVar.errors.lowSalary">Salary entered cannot be lesser than the previously entered salary.</span> 

을 다음하지만 내가 원하는 것은 HTML로 반환하는 것입니다 입력 한 급여 (숫자 값보다 적은 수 없다는 것입니다 될 때 지시 아래이 있습니다) 그 값은 지시문에서 얻을 수 있기 때문에

+0

왜 downvoting 같은 템플릿에서 사용할 수 반환 그래서 경우

? 답변을 공유 할 수있는 링크가 있습니까? – ashley

답변

1

반환 된 오류에는 원하는 데이터가 포함될 수 있습니다. 당신이

return { 
     lowSalary: { 
     valid: false, 
     oldSalary: Number(this.oldSalary) 
     } 
    } 

는 당신이

<span *ngIf="salVar.errors.lowSalary"> 
    Salary entered cannot be lesser than {{salVar.errors.lowSalary.oldSalary}}. 
</span> 
+0

감사합니다 :) 잘 작동합니다. – ashley

관련 문제