如何在Angular中为自定义验证器添加自定义验证错误消息

时间:2018-12-17 12:08:12

标签: javascript angular typescript

我正在使用反应性角度形式并创建了新的自定义形式验证器,但是它没有显示自定义消息,我想为自定义验证器添加自定义消息。

我正尝试忽略静态消息,我希望将该消息添加到该验证器中,以便可以在我使用该验证器的任何地方显示该消息。

自定义验证程序代码:

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

export function validateJson(input: FormControl): object | null {
    try {
        if (input.value) {
            JSON.parse(input.value);
        }

        return null;
    } catch (error) {
        return { invalidFormat: true };
    }
}

1 个答案:

答案 0 :(得分:1)

只需将invalidFormat属性的值更改为带有属性消息而不是true的对象

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

export function validateJson(input: FormControl): object | null {
    try {
        if (input.value) {
            JSON.parse(input.value);
        }

        return null;
    } catch (error) {
        return { invalidFormat: {message: "your message here"} };
    }
}

,如果存在错误,则在html中显示如下消息

<div *ngIf="formControl.errors.invalidFormat && formControl.dirty">
        {{ formControl.errors.invalidFormat.message}}
</div>