response.json 不是函数。角火
response.json is not a function. AngularFire
所以我正在使用 AngularFire2 构建一个应用程序,这是在一个服务中,但是当函数搜索得到 运行 它调用错误 response.json 不是一个函数。 Firebase returns 一个可观察的,我不确定为什么这个片段不起作用。
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import { Article } from '../models/index';
search(term: string): Observable<Article[]> {
return this.af.database
.list('/articles/', {
query: {
orderByChild: "title",
equalTo: term,
limitToFirst: 10
}
})
.map(response => response.json().data as Article[]);
}
AngularFire2 的 list
observable 不发出 HTTP 响应对象。它发出一个匿名对象数组,代表与查询匹配的项目。
如果 Article
是一个接口,您可以删除 map
运算符并转换 observable 本身:
import { Observable } from 'rxjs/Observable';
import { Article } from '../models/index';
search(term: string): Observable<Article[]> {
return this.af.database
.list('/articles/', {
query: {
orderByChild: 'title',
equalTo: term,
limitToFirst: 10
}
}) as Observable<Article[]>;
}
如果 Article
是 class,您应该使用 map
运算符创建实际的 Article
实例(使用合适的构造函数):
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import { Article } from '../models/index';
search(term: string): Observable<Article[]> {
return this.af.database
.list('/articles/', {
query: {
orderByChild: 'title',
equalTo: term,
limitToFirst: 10
}
})
.map(list => list.map(item => new Article(item));
}
所以我正在使用 AngularFire2 构建一个应用程序,这是在一个服务中,但是当函数搜索得到 运行 它调用错误 response.json 不是一个函数。 Firebase returns 一个可观察的,我不确定为什么这个片段不起作用。
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import { Article } from '../models/index';
search(term: string): Observable<Article[]> {
return this.af.database
.list('/articles/', {
query: {
orderByChild: "title",
equalTo: term,
limitToFirst: 10
}
})
.map(response => response.json().data as Article[]);
}
AngularFire2 的 list
observable 不发出 HTTP 响应对象。它发出一个匿名对象数组,代表与查询匹配的项目。
如果 Article
是一个接口,您可以删除 map
运算符并转换 observable 本身:
import { Observable } from 'rxjs/Observable';
import { Article } from '../models/index';
search(term: string): Observable<Article[]> {
return this.af.database
.list('/articles/', {
query: {
orderByChild: 'title',
equalTo: term,
limitToFirst: 10
}
}) as Observable<Article[]>;
}
如果 Article
是 class,您应该使用 map
运算符创建实际的 Article
实例(使用合适的构造函数):
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import { Article } from '../models/index';
search(term: string): Observable<Article[]> {
return this.af.database
.list('/articles/', {
query: {
orderByChild: 'title',
equalTo: term,
limitToFirst: 10
}
})
.map(list => list.map(item => new Article(item));
}