从我到目前为止所学到的,验证错误是用 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 中返回的是输入的薪水不能小于(数值),因为该值可以从指令中获得
返回的错误可以包含您想要的任何数据。
所以如果你回来
return {
lowSalary: {
valid: false,
oldSalary: Number(this.oldSalary)
}
}
你可以像这样在你的模板中使用它
<span *ngIf="salVar.errors.lowSalary">
Salary entered cannot be lesser than {{salVar.errors.lowSalary.oldSalary}}.
</span>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句