问题:
使用indexdb,sqlite等本地储存后再取出对象导致类中的方法(对象的原型中的方法)消失。
解决方法:
- 使用Object.assign()合并对对象。这时,this.details中的每个元素都是RetailOrderDetailEditDto的实例化对象。
重新构造一个对象new RetailOrderDetailEditDto(), 这个对象中包含所需要的方法,toJSON等。
this.details = this.details.map(e => { this.amount += e.price * e.qty; return e = Object.assign(new RetailOrderDetailEditDto(), e); });
- 在Class 中添加构造方法
即在创建 RetailOrderDetailEditDto 类时,constructor可以接收data
constructor(data?: IRetailOrderDetailEditDto) {
if (data) { for (var property in data) { if (data.hasOwnProperty(property)) (<any>this)[property] = (<any>data)[property]; } }}
export class RetailOrderDetailEditDto implements IRetailOrderDetailEditDto { id: number | undefined; productId: number | undefined; productName: string | undefined; productSkuId: number | undefined; ... constructor(data?: IRetailOrderDetailEditDto) { if (data) { ... } } init(data?: any) { ... } static fromJS(data: any): RetailOrderDetailEditDto { ... } toJSON(data?: any) { ... } }
原文地址:https://www.cnblogs.com/stardee/p/10004565.html
时间: 2024-11-08 23:28:47