我试图使用AngularFire2函数实例化变量。我的函数是authorizeUser()
,但是当我尝试将该函数的结果分配给this.user
时,它在控制台窗口中返回为'undefined'。
import { Component, OnInit } from '@angular/core';
import { AngularFire } from 'angularfire2';
import { SignupService } from '../../../services/signup/signup.service';
@Component({
selector: 'console',
templateUrl: './console.component.html',
styleUrls: ['./console.component.css']
})
export class ConsoleComponent implements OnInit {
signups: any;
user : any;
constructor(
public af: AngularFire,
private signupService: SignupService
) {}
getSignupsList() {
this.signupService.getSignups().subscribe(signups => {
this.signups = signups;
});
}
authorizeUser() {
this.af.auth.subscribe( afData => {
this.user = afData.auth.email;
});
}
ngOnInit() {
this.getSignupsList();
this.authorizeUser();
console.log(this.user);
}
login() {
this.af.auth.login();
}
}
但是,如果我在承诺中控制日志,我会得到正在寻找的正确输出:
authorizeUser() {
this.af.auth.subscribe( afData => {
this.user = afData.auth.email;
console.log(this.user);
});
}
我在这里缺少什么?我希望能够将afData.auth.email
的输出分配给全局变量:user
答案 0 :(得分:0)
用户变量的范围限定为组件。它不是全球性的。