2017-10-20 71 views
1

我使用角4火力點,我需要等待裝入我的服務,然後從我的數據庫中創建FirebaseListObservable .. 我component.ts代碼如下角4火力點等待服務被加載第一

constructor(db: AngularFireDatabase,public authService: AuthService,public 
    afAuth: AngularFireAuth) { 
     this.challenges = db.list('challenges', { 
      query: { 
      orderByChild: 'challenged', 
      equalTo: this.authService.cusername 
      } 
     }); 

的問題是,構造得到authService.cusername作爲undendifed因爲authService尚未完全加載..有什麼辦法可以等待服務被加載,然後再運行db.list('challenges', { etc...});?我試圖做一些對ngOnInit但似乎我可以使用DB:僅在構造函數中AngularFireDatabase ..

回答

1

db:前添加privatepublic關鍵字,這將使參數也類領域,所以你可以通過this.db訪問其他方法:

constructor(private db: AngularFireDatabase,public authService: AuthService,public 
afAuth: AngularFireAuth) { } 

ngOnInit() { 
    this.db.doSomething(); 
} 

這基本上只是一個打字稿語法糖:

constructor(private service: MyServiceType) {} 

是相同:

private service: MyServiceType; 

constructor(service: MyServiceType) { 
    this.service = service; 
}