如何在Angular中使用JSON.parse在新行中返回多个结果? [英] How to return multiple result in new line using JSON.parse in Angular?
问题描述
我有多个结果的json文件.
I have json file with multiple results.
1-样本一
jsonChanges: "{"field":"cancerType","oldValue":"Lentigo maligna melanoma","newValue":"Primary malignant melanoma of g canal"}"
在这种情况下,我成功返回了列表中的所有值
In this case I am succesfully return all values from list
2-采样两个多个值
jsonChanges:
"{"field":"date","oldValue":"","newValue":"Tue Mar 26 00:00:00 GMT 2019"},
{"field":"techniqueType","oldValue":"","newValue":"Intralesional"},{"field":"response","oldValue":"","newValue":"Complete Response"}"
2 -- Sample two multiple values
jsonChanges:
"{"field":"date","oldValue":"","newValue":"Tue Mar 26 00:00:00 GMT 2019"},
{"field":"techniqueType","oldValue":"","newValue":"Intralesional"},{"field":"response","oldValue":"","newValue":"Complete Response"}"
在这种情况下,它返回空.
In this case it returns empty.
在我正在使用的component.ts中
In my component.ts I am using
getList(patientId?: number, pageNo?: number) {
const auditTrailSubscription =
this._auditTrailService.getAuditTrailUrl(patientId, pageNo,
GridConfig.ITEMS_PER_PAGE)
.subscribe(
result => {
try {
this.totalItems = result.recordsCount;
this.auditTrailList = result.lstRecords;
this.auditTrailList.forEach(x => x.jsonChanges =
JSON.parse(x.jsonChanges));
} catch (e) {
console.log(e);
}
},
err => {
this.handleError(err);
}
);
this.addSubscription("auditTrail", auditTrailSubscription);
}
我正在使用html
<tr *ngFor="let at of auditTrailList | paginate: { itemsPerPage:
_ITEMS_PER_PAGE, currentPage: crtPage, totalItems: totalItems }"
[attr.data-row-id]="at.userId">
<td>{{ at.userName }}</td>
<td>{{ at.timestamp | date: CUSTOM_DATE_FORMAT }}</td>
<td>{{ at.entityName }}</td>
<td>{{ at.jsonChanges.field }}</td>
<td>{{ at.jsonChanges.oldValue }}</td>
<td>{{ at.jsonChanges.newValue }}</td>
</tr>
页面看起来像这样
我的问题是如何获取多个值并在新行中显示它们.对于返回单个值也可以.但是对于多个值,我一无所知.
My question is how to get multiple values and show them in new row.For returning single value it is ok. But for multiple values I have no idea.
推荐答案
添加其他数组并从该数组中获取结果解决了我的解决方案.
Adding additional array and getting results from this array solved my solution.
try {
this.results = [];
this.totalItems = result.recordsCount;
this.auditTrailList = result.lstRecords;
this.auditTrailList.forEach(x => {
const jschanges = JSON.parse(`[${x.jsonChanges}]`);
jschanges.forEach(z => {
this.results.push({
userName: x.userName,
timestamp: x.timestamp,
entityName: x.entityName,
field: z.field,
oldValue: z.oldValue,
newValue: z.newValue
})
})
});
这篇关于如何在Angular中使用JSON.parse在新行中返回多个结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!