我想从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中重复使用。但是我没有来做:(
感谢您的帮助!