Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何为用户翻译并列出表单中的每个错误_Angular_Typescript_Angular Material_Angular Forms_Angular Validation - Fatal编程技术网

Angular 如何为用户翻译并列出表单中的每个错误

Angular 如何为用户翻译并列出表单中的每个错误,angular,typescript,angular-material,angular-forms,angular-validation,Angular,Typescript,Angular Material,Angular Forms,Angular Validation,我有多个表单,其中30多个输入字段按类别在不同的选项卡中排序。提交时的错误显示在表单字段下 如何在包含字段名和验证错误的列表中显示所有验证错误?字段名和错误消息也需要翻译成德语 这是我目前正在尝试使用的代码: getFormValidationErrors() { const errors = []; Object.keys(this.form.controls).forEach(key => { const controlErrors: Validat

我有多个表单,其中30多个输入字段按类别在不同的选项卡中排序。提交时的错误显示在表单字段下

如何在包含字段名和验证错误的列表中显示所有验证错误?字段名和错误消息也需要翻译成德语

这是我目前正在尝试使用的代码:

 getFormValidationErrors() {
    const errors = [];
    Object.keys(this.form.controls).forEach(key => {

        const controlErrors: ValidationErrors = this.form.get(key).errors;
        if (controlErrors != null) {
            Object.keys(controlErrors).forEach(keyError => {
                errors.push({
                    'field': key,
                    'error': keyError,
                    'value': controlErrors[keyError]
                });
            });
        }
    });

    console.log(errors);

    return JSON.stringify(errors);
}
这是迄今为止html中的输出:

[{"Field":"name","Error":"required","value":true},{"Field":"official_name","Error":"required","value":true},{"Field":"address_zip","Error":"notInRange","value":true},{"Field":"address_zip","Error":"required","value":true},{"Field":"address_city","Error":"required","value":true},{"Field":"tenant","Error":"required","value":true}]
我想展示的是这样的东西(但也翻译成德语):


这似乎更像是一个格式问题。为什么不:

而不是

errors.push({
    'field': key,
    'error': keyError,
    'value': controlErrors[keyError]
});


其中getFieldLabel和getErrorLabel函数负责翻译/获取。您甚至可能不需要对象格式-字符串可能适合您-不确定如何处理文本的呈现。

到目前为止您尝试了什么?@MoxxiManagarm我编辑了我的问题,显示了我迄今为止尝试使用的代码。当您出错时,您的错误数组是否获得值?@Eudz它确实显示了所有错误。缺少的只是翻译和格式。@哦,对于翻译,我想您可以使用
i18n
errors.push({
    'field': key,
    'error': keyError,
    'value': controlErrors[keyError]
});
if (controlErrors[keyError]) {
    errors.push({
        this.getFieldLabel(key): this.getErrorLabel(error)
    });
}