我正在使用带有firebase的Angular 4,我需要等待我的服务加载,然后从我的数据库创建FirebaseListObservable。 我的component.ts代码如下
constructor(db: AngularFireDatabase,public authService: AuthService,public
afAuth: AngularFireAuth) {
this.challenges = db.list('challenges', {
query: {
orderByChild: 'challenged',
equalTo: this.authService.cusername
}
});
问题是构造函数将 authService.cusername 作为未定义的,因为authService还没有完全加载..有什么办法我可以等待服务先加载然后再运行db.list('challenges', { etc...});
??我尝试在ngOnInit上做一些,但似乎我只能在构造函数中使用 db:AngularFireDatabase 。
答案 0 :(得分:0)
只需在private
之前添加public
或db:
关键字,即可使参数也为类字段,以便您可以通过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;
}