Angular 当窗体属性是对象时,如何显示错误?
我有一个表格,上面有输入银行账户的字段 字段:银行账户。货币Angular 当窗体属性是对象时,如何显示错误?,angular,angular8,Angular,Angular8,我有一个表格,上面有输入银行账户的字段 字段:银行账户。货币 字段:银行账户。银行 字段:名称 bankAccount { currency?: string; bank?: string; } 我想向用户显示错误 <div *ngFor="let error of errors"> {{ error }} </div> {{error}} 这会给我名称的错误,但当bankAccount.currency字段出现错误时,我会得到银行帐户:0[o
字段:银行账户。银行
字段:名称
bankAccount {
currency?: string;
bank?: string;
}
我想向用户显示错误
<div *ngFor="let error of errors">
{{ error }}
</div>
{{error}}
这会给我名称的错误,但当bankAccount.currency字段出现错误时,我会得到银行帐户:0[object object]
如何获取
[object object]
的内容?尝试将对象解析为字符串以用于输出
JSON.stringify(error)
使用管道来串接对象的值:
<div *ngFor="let error of errors">
{{ error | json }}
</div>
{{error | json}}
这样,您就可以确定errors
数组中error
对象的结构
然后,您可能希望使用
error
对象中的属性显示相应的错误消息。您只需访问要显示的属性即可:
<div *ngFor="let error of errors">
Currency: {{ error.currency }}, Bank: {{ error.bank }}
</div>
货币:{{error.Currency},银行:{{error.Bank}
为了回答您的问题,Angular提供了一个验证错误
界面:
/**
*包含因验证失败而生成的任何错误的对象,
*如果没有错误,则返回null。
*/
只读错误:ValidationErrors | null;
假设您在表单控件上添加了required
验证器,但验证失败,只需检查错误的发生情况。required
。如果属性存在,则验证失败,您可以向客户端显示反馈
更完整的解决方案是跟踪验证消息列表:
export const ValidationMessages={
必填项:“字段为必填项”,
...
}
然后创建一个助手方法以显示(第一个)验证消息:
showError(错误:ValidationErrors):字符串| null{
const key=Object.keys(错误)[0];
返回ValidationMessages[key]| |“字段无效”;
}
。。。并在模板中使用它:showError(错误)
Protip:使用将对象转换为JSON格式(即
{{errors | JSON}}
您试图从对象中显示什么?[object object]
部分包含实际的错误信息字符串。仅供参考,我将重写该表单以使用validatorsThx,但我可能不够清楚。错误不是对象(这是确切的错误:银行帐户:0[对象对象]
)这是我想让人可读的对象内的附加消息。Thx,但我可能不够清楚。这不是一个对象的错误(这是确切的错误:银行帐户:0[对象对象]
)这是我想让人可读的对象中的附加消息。(对于剪切粘贴的答案,我感到抱歉)Thx但在我的问题中你看不到的是,我有大约100个字段,因此不幸的是,这是不可行的。在某一点上,你必须将字段映射为人类可读的格式。计算机不会神奇地为你做这件事。在这里澄清你的目标。很抱歉,我提供的信息没有让你满意。我会尽我所能为了下一次改进。我将重写表单以使用角度验证器,FYIThx我将对此进行研究。错误不是来自角度验证器,而是来自后端验证,因此我相信这不会改变任何内容。再次使用Thx。我将切换到验证器