【发布时间】:2017-01-25 05:28:39
【问题描述】:
我有以下服务类,它在提供者等中设置为单例。
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import { Geolocation } from 'ionic-native';
import { Platform } from 'ionic-angular';
import 'rxjs/Rx';
@Injectable()
export class TestService {
private appData: any;
constructor(private http: Http) {
console.log("service constructor called");
this.loadAppData();
}
loadAppData() {
let url = `/api/b502daab-2c7b-4cea-a00e-dc5aa6b58196`;
this.http.get(url).map(res => res.json()).subscribe(data => {
this.appData = data;
console.log(this.appData);
});
console.log(this.appData);
}
getAppData()
{
return this.appData;
}
}
订阅中的console.log(this.appData) 输出一个对象,因为它应该在输出未定义之后的那个对象,不应该在那时设置吗?让事情变得更糟。
我在构造函数上调用 loadappdata,在我的页面中我想通过调用来获取对象
export class HomePage {
constructor(public navCtrl: NavController, public testService: TestService) {
console.log(testService.getAppData());
};
}
但 getAppData 始终未定义,
我正在尝试让服务保留一个对象,以便我的页面可以根据需要从中获取数据。我的印象是应该如何利用服务跨页面共享数据
【问题讨论】: