使用角度2中的对象属性绑定视图

时间:2017-08-12 18:34:32

标签: angular firebase firebase-realtime-database angular2-template angular2-forms

我从firebase数据库中获取用户数据,并使用该数据绑定类对象。数据获取工作正常,但是当我尝试将它与typescript文件中的类对象绑定时,它显示警告"没有找到对象"的实现,但我已经声明了对象。

以下是我的代码,

import { Component } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { AngularFireAuth, AngularFireAuthProvider } from 'angularfire2/auth';
import * as firebase from 'firebase/app';
import { Router } from '@angular/router';
import { UserInfo } from "./models/userInfo";

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  user: Observable<firebase.User>;
  currentUser : Observable<UserInfo>;

  constructor(public afAuth: AngularFireAuth, public router: Router) {
    this.user = afAuth.authState;

    firebase.auth().onAuthStateChanged(function(user) {
      if (user) {
        let fireBaseUser = firebase.auth().currentUser;
        if(fireBaseUser)
        {
          console.log("fire - ", fireBaseUser.uid);
          this.currentUser = firebase.database().ref('/users/' + fireBaseUser.uid).once('value').then(function(snapshot) {
              console.log(snapshot.val());
              return snapshot.val();
            });

        }
      } else {
        router.navigateByUrl('/login');
      }
    });
  }

}

以下是我的观点,

user.uid - <div> {{ (user | async)?.uid }} </div> // display correct value
<div> cc - {{ currentUser }} </div> // empty.

以下是错误,

Error info

我猜,问题是,我正在尝试在Observable范围内填充currentUser对象。所以它无法找到我的初始化对象。我需要做些什么才能让它发挥作用。

0 个答案:

没有答案