Получение данных с темой из http - PullRequest
0 голосов
/ 20 мая 2019

Я хотел бы получить данные по теме из http. У меня есть служба (storage.Service), которая «вызывает» http-соединение с субъектом и копирует массив в другой сервис (myinfo.Service), который передает данные на страницу .ts

Я прибыл, чтобы получить массив и передать его в myinfo.service, но я не пришел, чтобы скопировать его, потому что после того, как я вызову метод для копирования массива info.service в массив page.ts th, он пуст.

Большое спасибо за вашу помощь.

код info.service:

 private myinfoData: MyinfoModel[] = [];

  myinfoSubject = new Subject<MyinfoModel[]>();


  constructor() { }

  setInfo(myinfoData: MyinfoModel[]) {
    this.myinfoData = myinfoData;
    this.myinfoSubject.next(this.myinfoData.slice());
  }

  getInfo() {
    return this.myinfoData.slice();
  }

код службы хранения:

  private _url: any = '../assets/DB-Test/DB_MyInfo.json';


  constructor(private http: HttpClient, private myinfoService: MyinfoService) { }

  getMyInfo() {
    this.http.get<any[]>(this._url).subscribe(
      (response: MyinfoModel[]) => {
        const infoData: MyinfoModel[] = response['DB_Portfolio']['TB_MyInfo'];
        this.myinfoService.setInfo(infoData);
        console.log(response);
        console.log(infoData);
      },
      (error) => {
        console.log('Error: ' + error);
      }
    );
  }

Page.ts код:

  infoDataBis: MyinfoModel[];

  constructor(private dbStorage: DbStorageService, private myinfoService: MyinfoService) { 
    this.dbStorage.getMyInfo();
  }


  ngOnInit() {
    this.infoDataBis = this.myinfoService.getInfo();
    console.log(this.infoDataBis);

на console.log Я написал в хранилище.service

        console.log(response);
        console.log(infoData);

Я вижу массивы

на console.log, который я написал в page.ts

   console.log(this.infoDataBis);

массив пуст

Когда я отлаживаю, я вижу массив в info.service, получая некоторые из них, которые во время "вызова" storage.service становятся пустыми. Поэтому, когда я вызываю метод getInfo (), я копирую пустой массив.

С этой логикой я думал, что смогу скопировать данные в сервис, который я смогу повторно использовать на любой странице. Если я захочу позже. Но я не приехал, чтобы сделать это: (

Спасибо за вашу помощь !!

...