从http

时间:2019-05-20 15:35:30

标签: angular ionic-framework subject

我想从http获取与主题相关的数据。 我有一个服务(storage.Service),可以“调用”与主题的http连接,并将数组复制到另一个服务(myinfo.Service),该服务会将数据传递给page.ts

我到达获取数组并将其传递给myinfo.service,但是我没有到达复制它的原因,因为在我调用方法将info.service数组复制到page.ts之后,该数组为空。

非常感谢您的帮助。

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);
在我在storage.service中写的console.log上的

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

我看到了数组

在我在page.ts中写的console.log上的

   console.log(this.infoDataBis);

数组为空

当我调试时,我在info.service中的数组在storage.service的“调用”过程中得到了一些,然后它变空了。因此,当我调用getInfo()方法时,我将复制一个空数组。

通过这种逻辑,我认为我可以将数据复制到服务中,以便以后可以在任何page.ts中重复使用。但是我没有来做:(

感谢您的帮助!

0 个答案:

没有答案