我试图找出如何将一些数据发送到服务器端API调用,让它进行验证,然后返回一些验证错误,那些验证错误应该与导致验证错误的组件一起显示 . 以下是我的数据模型的样子:
export class Order {
orderNo: string;
items: Item[];
constructor() {
this.items = [];
}
}
export class Item {
recNo: string;
}
这就是HTML表单的样子
<div class="form-group">
<label name="orderNo">Order Number</label>
<input type="text" formControlName="orderNo" />
</div>
<div formArrayName="items">
<div *ngFor="let item of orderForm.controls.items.controls; let i=index" [formGroupName]="i">
<div class="form-group">
<label>Item # {{i}}</label>
<input type="text" formControlName="recNo" />
</div>
</div>
</div>
我从服务器收到的验证错误是这种形式
[
{
"field": "orderNo",
"message": "order number is required"
},
{
"field": "items[2].recNo",
"message": "record number is required"
}
]
我无法弄清楚,一旦收到验证错误,我可以更新表单控件上的错误对象或填充其他一些结构来显示错误 . 它对于像 orderNo
这样的静态字段来说有点简单,但对于像 items[0].recNo
这样的嵌套数组字段要复杂得多,以编程方式更新错误 . 任何想法,将不胜感激 .
1 回答
这就是我最终做的事情:
基本上,基于
ctrl
有效/错误状态在表单控件上设置错误类,这是一个在控件上指定错误的示例:我刚使用预定义的错误键
e
来显示任何错误 . 这样,一旦我从后端收到错误列表,我就可以在控件上设置e
错误并将其显示在控件的工具提示中 .