Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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_Angular8 - Fatal编程技术网

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。我将切换到验证器