Angular 2相当新。我一直在使用firebase-angular2来创建服务。 我在这里运行了firebase-angular2演示https://github.com/KallynGowdy/firebase-angular2-demo但是当我运行它时出现以下错误
EXCEPTION:TypeError:heroes.map不是函数 angular2.dev.js:23083 EXCEPTION:TypeError:heroes.map不是函数
据我所知,它是指ts / firebase-heros.service.ts上的这段代码
import {Injectable} from "../../node_modules/angular2/core";
import {HeroService} from "./hero.service";
import {Observable} from "../../node_modules/rxjs/Rx";
import {FirebaseService} from '../../node_modules/firebase-angular2/core';
import {Hero} from "./../interfaces/hero";
@Injectable()
export class FirebaseHeroService extends HeroService {
private service:FirebaseService;
constructor(firebaseService:FirebaseService) {
this.service = firebaseService.child('heroes');
}
getHeroes() {
var service = this.service;
return service.value.map((heroes) => {
return heroes.map((h, i) => {
// TODO: Cleanup
return {
id: h.id,
name: h.name,
save: function () {
return service.child(i.toString()).setData({
id: this.id,
name: this.name
});
}
}
})
});
}
}
可能导致此问题的任何想法? 提前谢谢
答案 0 :(得分:2)
heroes
此行不是数组,这就是您收到错误的原因:
return service.value.map((heroes) => {
console.log(heroes);
...
如果您记录它的值,您可以检查它的类型并采取适当的措施。如果它是响应,您可能需要在进一步处理之前将其转换为JSON
return service.value
.map(response => response.json())
.map((heroes) => {...