Javascript 处理http调用';s响应:过滤器不是一个函数
提供商代码:Javascript 处理http调用';s响应:过滤器不是一个函数,javascript,angular,ionic2,Javascript,Angular,Ionic2,提供商代码: import {AutoCompleteService} from 'ionic2-auto-complete'; import { Http } from '@angular/http'; import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import 'rxjs/add/operator/map'; @Injectable() export
import {AutoCompleteService} from 'ionic2-auto-complete';
import { Http } from '@angular/http';
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/map';
@Injectable()
export class AutoSuggestProvider implements AutoCompleteService {
constructor(public http: HttpClient, public HTTP: Http) {
console.log('Hello AutoSuggestProvider Provider');
}
getResults(keyword:string) {
return this.HTTP.get("https://restcountries.eu/rest/v1/name/"+keyword) .map( result => { return result.filter(item => item.name.toLowerCase().startsWith(keyword.toLowerCase()) ) });
}
}
问题行:
返回此.HTTP.get(“+关键字)
.map(结果=>{返回结果.filter(项=>
item.name.toLowerCase().startsWith(关键字.toLowerCase())})
正如你所看到的,这是一句有问题的话
类型“Response”上不存在属性“filter”
请帮助我如何解决此问题?请尝试此方法
import { Http } from '@angular/http'
import 'rxjs/add/operator/map';
getResults(keyword:string){
return this.Http.get("https://restcountries.eu/rest/v1/name/"+keyword).map(res=>{
return res.json()
}).map(fil=>{
return fil.filter(res=>{
return res.name.toLowerCase().startsWith(keyword.toLowerCase())
})
})
}
在第一个映射中,以json的形式返回,在第二个映射中,根据关键字
import{Pipe,PipeTransform}从'@angular/core'过滤结果代码>尝试添加此“导入”rxjs/add/operator/filter';并检查您的响应是否为空