function replaceEn(obj) { if (typeof obj === 'object' && obj !== null) { if (Array.isArray(obj)) { obj.forEach((item, index) => { obj[index] = replaceEn(item); }); } else { Object.keys(obj).forEach(key => { const value = replaceEn(obj[key]); if (key.endsWith('En') && value !== undefined && value !== null && value !== '') { const newKey = key.slice(0, -2); obj[newKey] = value; delete obj[key]; } else { obj[key] = value; } }); } } return obj; }

// Angular http interceptors @Injectable() export class ReplaceEnInterceptor implements HttpInterceptor { intercept(req: HttpRequest, next: HttpHandler): Observable<HttpEvent> { return next.handle(req).pipe( map(event => { if (event instanceof HttpResponse) { const body = replaceEn(event.body); return event.clone({ body }); } return event; }) ); }

写一个js函数传入一个变量判断如果是object就遍历每一个属性如果存在属性名末尾+En的属性且不为空就把当前属性的值替换成+En后属性的值如果遇到数组或子object就把每一项都遍历过去。然后再写一段让angular对所有http返回都调用此函数处理的代码。

原文地址: https://www.cveoy.top/t/topic/eE87 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录