類中的方法(物件的原型中的方法)消失
阿新 • • 發佈:2018-11-22
問題:
使用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) { ... } }