【发布时间】:2016-05-04 14:38:15
【问题描述】:
我尝试从我的 Firebase 中检索数据,它可以正常工作,但仅适用于 console.log()。 我无法将值返回到 var...
当我使用 Angular 2 和 Typescript 时,我有
服务:
import {Injectable} from "angular2/core";
import 'rxjs/Rx';
import {Observable} from "rxjs/Observable";
declare var Firebase: any;
@Injectable()
export class DataService {
getAllData() {
const firebaseRef = new Firebase('https://XYZ.firebaseio.com/path/user')
firebaseRef.on("value", function (snapshot) {
console.log(snapshot.val()); // THIS WORKS!
return snapshot.val(); // THIS DOES NOT WORK!
});
}
和一个组件:
@Component({
templateUrl: 'templates/user.tpl.html',
providers: [DataService],
})
export class UserComponent implements OnInit{
userData: any;
constructor(private _dataService: DataService){}
ngOnInit():any {
this.userData = this._dataService.getAllData();
console.log(this.userData); // THIS DOES NOT WORK: UNDEFINED
}
如果我运行它,我的 userData var 将一无所获……而且我不知道如何解决这个问题。我以为我需要一个 Observable 但我失败了,无论我试图做什么......
有人可以帮忙吗?
【问题讨论】:
标签: javascript angularjs typescript firebase angular