【问题标题】:angular2 saving response from firebase to a modelangular2保存从firebase到模型的响应
【发布时间】:2016-10-19 23:00:20
【问题描述】:

非常感谢您阅读此问题。已经挣扎了一段时间,如果有人指出我在这里做错了什么,那就太好了。

我从 firebase 获取结果并尝试将其保存在用户模型中,但出现此错误

未捕获的类型错误:无法将属性“用户”设置为 null。

import { Component, OnInit, EventEmitter, Output } from '@angular/core';
import { User } from '../user.ts';
import { UserComponent } from './user.component';
declare var firebase: any;
@Component({
  moduleId: module.id,
  selector: 'trafford-user-list',
  templateUrl: 'user-list.component.html',
  styleUrls: ['user-list.component.css'],
  directives: [ UserComponent ]
})
export class UserListComponent implements OnInit {
  private users: User[] = [{ name: 'sosk', email: 'dfdok', password: 'asdf'}];
  private user: User;
  @Output() selected = new EventEmitter<User>();
  constructor() { }

  ngOnInit() {
    this.getUsers();
  }

  getUsers() {
    firebase.database().ref('accounts').on('value', function(snapshot) {
      this.users = snapshot.val();
    });
  }

  onSelected(user: User) {
    this.selected.emit(user);
  }

}

当我尝试在控制台中编写响应时,它的工作原理。但是 this.users 在该 firebase 回调中没有任何作用域。我对 Angular 很陌生,任何帮助将不胜感激。

【问题讨论】:

    标签: javascript angular firebase firebase-realtime-database


    【解决方案1】:

    使用箭头函数 (=&gt;) 保留作用域

      getUsers() {
        firebase.database().ref('accounts').on('value', (snapshot) => {
          this.users = snapshot.val();
        });
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多