问题:被@ObservedV2和@Trace标记的类及字段,字段名称都加上了“__ob_”开头的字段
如下类:
@ObservedV2 export class BizPriceEntity{ @Trace disabled:boolean = true // true已停用 false未停用 @Trace value:string = "" // 价格名称 @Trace code:string = "" // 价格code }
使用了@ObservedV2字段,目的是为了可以同步ui
但是因为v2装饰器的愿意,系统给@Trace修饰的字段名称都加上了“__ob_”开头的字段
若某个提交接口需要提交该类的对象,则会把__ob_字段一起提交,
所以需要在提交前对象数据做一个处理,处理如下
static convertKeysToCamelCase(obj: ESObject | ESObject[]): ESObject | ESObject[] { // 处理数组类型 if (Array.isArray(obj)) { const newArray: ESObject[] = [] obj.forEach((item: ESObject, key) => { newArray[key] = HMUtils.convertKeysToCamelCase(item); }) return newArray } // 处理普通对象 if (obj && typeof obj === 'object') { const newObj: ESObject = {} Object.keys(obj).forEach((key) => { if (obj.hasOwnProperty(key)) { const newKey = key.replace(/(__ob_)/g, '') newObj[newKey] = HMUtils.convertKeysToCamelCase(obj[key]) } }) return newObj } // 原始值直接返回 return obj }
作者:听着music睡
出处:http://www.cnblogs.com/xqxacm/
Android交流群:38197636
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
浙公网安备 33010602011771号