【发布时间】:2021-04-25 19:27:09
【问题描述】:
我有上课顺序
export class Order {
constructor(public sName: string, public sSurname: string){}
getFullName(){
return this.sName + ' ' + this.sSurname;
}
}
问题是当我将Order类型的对象存储在本地存储中然后尝试检索该对象时,刷新页面时丢失了Order类型的对象信息,这就是为什么我尽管信息相同,但无法调用函数getFullName()。实际上,该类要大得多,我不想在检索对象时使用new Order() 创建一个新实例。我写了一个函数adapt(order: any): Order,但在这种情况下,我希望数据库中的数据具有不同的属性名称(例如Name而不是sName。我可以为具有不同属性名称的对象编写一个函数adapt2(order): Order我试图避免。你会建议我做什么?
ngOnInit(){
this.order = this.localstorage.retrieve('order') // order.getFullName() is not known
// should I write a new adapt function or would you recommend me to do something else?
}
【问题讨论】:
-
如何存储对象?显示一些代码
-
@RachidO 嘿,我使用 ngx-webstorage,所以我使用函数
store:this.localstorage.store('order', order)。我知道刷新时信息会丢失(已经问过这个问题):我想知道如何告诉应用程序我要检索的对象是Order类型。我可以使用new Order(order.sName ...),但实际上对象太大了,我不想使用它。这就是我要求其他方法的原因。 -
这是预期的。没有选项可以在任何 js 存储中存储“类实例”。如果你真的需要它,你必须自己实现序列化和反序列化逻辑
标签: angular typescript class local-storage