[英]How to pass the parameter to filter the local json data in angular http get?
[英]Angular 2+ http get() JSON-data. Cannot .filter data
我有一个 service.ts,我使用 get() 方法 (http) 从本地 JSON 文件中获取数据。 它工作正常。
getMusic() {
return this.http.get('assets/music.json')
.map((res:Response) => res.json())
在我的课堂上,我有我的“订阅”:
ngOnInit() {this.musicService.getMusic().subscribe(
data => { this.music = data.music}
);
}
我的 JSON 文件如下所示:
{
"music" : [
{
"no": 11,
"name": "Music 1",
}, ...... aso....
一切都很完美。 那么现在我正在尝试过滤我的数据,所以它只显示 no=11 的音乐。
我有这个进口:
//import 'rxjs/add/operator/map';
//import 'rxjs/add/operator/filter';
import 'rxjs/Rx';
我已经尝试了几件事。 包括过滤数字而不是字符串,使用 == 代替 ===,将 .filter 放入或外部 .map aso。 当我尝试这个时,我根本没有收到任何结果。 我没有错误,只是没有结果:
getMusic() {
return this.http.get('assets/music.json')
.map((res:Response) => res.json())
.map(x => x.filter(y => y.name === 'Music 1'));
}
您有错误的filter
运算符功能。 它应该对music
进行过滤。
getMusic() {
return this.http.get('assets/music.json')
.map((res:Response) => res.json())
//filter on `music` object instead of `x` directly
.map(x => x.music.filter(y => y.name === 'Music 1'));
}
filter
函数应用于数组而不是它的实例尝试使用
this.filteredArr = this.music.filter(x=>x.name == 'music 1'); //some condition
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.