Json stringify карта содержит карту и объекты Angular - PullRequest
1 голос
/ 01 ноября 2019

извините за мой английский:)

У меня есть служба, мне нужно хранить ее в хранилище, я делаю несколько кадров. Но у меня проблема с использованием stringify для помещения mycaddies в строку ..:

export class CaddyService {

   currentCaddyName:string="Caddy1";
  public caddies:Map<string,Caddy> = new Map();

}

Мне нужно хранить его на складе, я делаю несколько кадров:

localStorage.setItem('myCaddies',JSON.stringify(this.caddies));

и анализирую после в моем конструкторе:

let caddies= localStorage.getItem('myCaddies');

но этоне работает, проблема в том, что этот caddies содержит другую карту и объект:

export class **Caddy**{

    constructor (public name:string){

    }


    public items:Map<number,ProductItem> = new Map();
    public client:Client;
}

export class **ProductItem** {



    public product:Product;
    price:number;
    quantity:number;
}


export interface Product{
    id:number;
    name:string;
    description:string;
    currentPrice:number;
    promotion:boolean;
    selected:boolean;
    available:boolean;
    photoName:string;
    quantity:number;
    _links:{
      self:{
        href:string;
      },
      product:{
        href:string;
      },
      category:{
        href:string
      }
    }

  }


export class Client {
    name:string;
    emai:string;
    phoneNumber:string;
    address:string;
    username:string;
}

спасибо

1 Ответ

1 голос
/ 01 ноября 2019

Если вы хотите простое решение:

  • используйте объект вместо new Map(), потому что он может использовать stringify
caddies:{[key:string]:Caddy}

Все методы внутриКарту можно получить с помощью: Object.keys(), Object.values() ...

Редактировать : я не видел, чтобы Кэдди был также объектом. В этом случае это не сработает. Итак, два других решения:

  • Используйте interface вместо class и используйте службу для методов, которые были внутри класса.
  • или создайте метод внутрикласс Caddy для сопоставления с объектом. А также конструктор для сопоставления объекта с классом.
...