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가 완전히로드되지 않았기 때문에 undendifed으로 생성자가 나는 서비스가 처음로드 될 기다렸다가 db.list('challenges', { etc...});를 실행할 수있는 방법이 있습니다 .. authService.cusername를 얻을 수 있다는 것입니다? 나는 ngOnInit의 일부를하려고 노력하지만 내가 DB를 사용할 수 있습니다 보인다에만 생성자에서을 AngularFireDatabase ..

답변

1

을 그냥 그래서 또한 매개 변수 클래스 필드를 수행 할 수 있습니다 만들 것이다, db: 전에 private 또는 public 키워드를 추가 this.db 통해 다른 방법으로 액세스 :

constructor(private service: MyServiceType) {} 

은 다음과 같습니다

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

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

이 기본적으로 타이프 라이터 단지 구문 설탕입니다 같은 :

private service: MyServiceType; 

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