Angular RxJS未从Firebase正确返回json
我正在创建一个CMS应用程序,只是为了测试,我使用谷歌Firebase的登录按钮获取数据。我使用rxjs正确地返回JSON,但它返回一个带有某种令牌的奇怪对象。请帮我拿到没有那个标记的东西 ajax.service.tsAngular RxJS未从Firebase正确返回json,angular,firebase,rxjs,Angular,Firebase,Rxjs,我正在创建一个CMS应用程序,只是为了测试,我使用谷歌Firebase的登录按钮获取数据。我使用rxjs正确地返回JSON,但它返回一个带有某种令牌的奇怪对象。请帮我拿到没有那个标记的东西 ajax.service.ts import { Injectable } from '@angular/core'; import { Headers, Http, Response } from '@angular/http'; import { map } from 'rxjs/operators';
import { Injectable } from '@angular/core';
import { Headers, Http, Response } from '@angular/http';
import { map } from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class AjaxService {
constructor(private http: Http) { }
saveData(data: any) {
const header = new Headers({'Content-type': 'application/json'});
return this.http.post('https://cms-app-dev.firebaseio.com/data.json', data, {headers: header});
}
getData() {
return this.http.get('https://cms-app-dev.firebaseio.com/data.json')
.pipe(map(
(response: Response) => {
return response.json();
}
));
}
}
login.component.ts
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl, Validators } from '@angular/forms';
import { AjaxService } from '../ajax.service';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
loginForm: FormGroup;
submitted: boolean = false;
constructor(private ajaxService: AjaxService) { }
ngOnInit() {
this.loginForm = new FormGroup({
'email': new FormControl(null, [Validators.required, Validators.email]),
'password': new FormControl(null, Validators.required)
});
}
onSubmit() {
this.ajaxService.getData().subscribe(
(res: any) => {console.log(res);},
(error) => {console.log(error);}
);
}
}
因为您正在将数据发布到firebase,所以它会将每个对象存储在一个唯一的令牌下。因此,它本身就是一个必须迭代的对象。因此,不能在组件模板中使用常规循环。因此,在ts文件中使用for-in循环并将其存储在数组形式中,您将能够迭代模板中存储的数据。希望有帮助!!祝你好运 我只是做了一点小小的修改。请检查我收到的
无法读取未定义的属性“push”
错误。将数据定义为数组在snippet@dummylet
声明是块范围的,相反,它应该是public data=[]
您正在使用的HttpModule
,您应该改用它
let data=[];
onSubmit() {
this.ajaxService.getData().subscribe(
(res: any) => {
for(let object in res) {
data.push(object.email) }
},
(error) => {console.log(error);}
);
}