Angular 如何为用户翻译并列出表单中的每个错误
我有多个表单,其中30多个输入字段按类别在不同的选项卡中排序。提交时的错误显示在表单字段下 如何在包含字段名和验证错误的列表中显示所有验证错误?字段名和错误消息也需要翻译成德语 这是我目前正在尝试使用的代码: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
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)
});
}