Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了身份验证 – UID不显示构造函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图让uid脱离构造函数时遇到一些问题.当我运行此代码时,uid在Test 1日志中完美显示.但是Test2日志显示未定义.当构造函数关闭时,uid会删除自己吗?

import { Component,OnInit } from '@angular/core';
import {AngularFire,FirebaSEObjectObservable,FirebaseListObservablE} from 'angularfire2';

@Component({
  SELEctor: 'dashboard',templateUrl: 'dashboard.component.html',styleUrls: ['./dashboard.component.css']
})
export class DashboardComponent {
  userid:string;
  users:FirebaseListObservable<anY[]>;
  constructor(public af: AngularFirE) {
    this.af.auth.subscribe(auth => {
      console.log(auth.uid);
      thiS.Userid = auth.uid;
      console.log("Test 1 "+ thiS.Userid);
    });
    console.log("Test2 "+ thiS.Userid);
  }
}

这是我在控制台中的输出

Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.
dashboard.component.ts:18 Test2 undefined
dashboard.component.ts:14 CgTltJ1h2TUFS5teoACCxoPHP1g1
dashboard.component.ts:16 Test 1 CgTltJ1h2TUFS5teoACCxoPHP1g1

我的第二个问题是如何从构造函数获取uid?因为我需要它从数据库获取一些其他数据.

解决方法

执行console.log(“Test2 …”)时,该值尚不可用

当数据从服务器到达时,函数传递给subscribe()

auth => {
      console.log(auth.uid);
      thiS.Userid = auth.uid;
      console.log("Test 1 "+ thiS.Userid);
    }

调用,只有这时数据才可用,只有在该函数内,console.log(“Test2 …”)在此之前执行了一段时间

export class DashboardComponent {
  userid:string;
  users:FirebaseListObservable<anY[]>;
  constructor(public af: AngularFirE) {
    this.af.auth.subscribe(auth => {
      console.log(auth.uid);
      thiS.Userid = auth.uid;
      console.log("Test 1 "+ thiS.Userid);
    });
    console.log("Test2 "+ thiS.Userid);
  }
}

大佬总结

以上是大佬教程为你收集整理的身份验证 – UID不显示构造函数全部内容,希望文章能够帮你解决身份验证 – UID不显示构造函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。