在我的角度項目中,我有以下設置:角等待初始加載
我有API的應用程序負載的開頭來從服務器的一些數據:
ItemFetch.ts
在應用程序加載開始時,它從API中提取數據,然後將itemLoaded
更改爲true。
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
...
dataLoaded: boolean = false;
dataAPI(){ //Stores in local storage
...
.then(data=>{
this.itemLoaded = true;
})
...
}
main.ts:
然後,一旦數據被存儲,我只需要加載存儲數據時itemLoaded
從ItemFetch.ts
是真實的。
import { dataFromStorage} from './data_from_storage' //local storage
export class main_page {
constructor(public itemStorage: dataFromStorage){};
ngOnInit(){
this.fetchInitialData();
}
//Fetch the data from the storage
fetchInitialData(){
this.itemStorage.GetItemDataFromStorage('some_item_id')
.then((data) => {
console.log("Got the data!" + data);
)
};
}
問:
我如何從一個組件共享此dataLoaded
到另一個,這樣我可以啓動this.fetchInitialData();
只有當dataLoaded
是真的嗎?
我會將變量存儲在單例服務中。這樣,兩個組件都可以注入服務並使用它。 – LLai