How to store an object (of a class type) in browser's storage and retrieve it?

前端 未结 3 2348
生来不讨喜
生来不讨喜 2020-12-22 09:47

I want to have a page-reload proof class instances in my Angular 2 application.

In my component\'s .ts file I have classes:

export class AComponent i         


        
3条回答
  •  温柔的废话
    2020-12-22 10:26

    using localStorage you can do this:

    import { Component, OnInit } from '@angular/core';
    class Bar {
       baz: number = 11;
    }
    class Foo {
       bar: Bar = new Bar()
    }
    @Component({
      selector: 'a-component',
      template: `
    ` }) export class AComponent implements OnInit{ foo: Foo = new Foo(); constructor(){ this.incrementBaz() } ngOnInit(): void { this.foo = JSON.parse(localStorage.getItem('foo')) console.log('baz=', this.foo.bar.baz) } incrementBaz() { let old = JSON.parse(localStorage.getItem('foo')) if (old) { old.bar.baz += 1; localStorage.setItem('foo', JSON.stringify(old)) } else { localStorage.setItem('foo', JSON.stringify(this.foo)) } } reset() { this.foo = new Foo(); localStorage.setItem('foo', JSON.stringify(this.foo)) console.log('baz=', this.foo.bar.baz) } }

    with localStorage you can store whatever complex object you want.

    hope this helps!

提交回复
热议问题