繁体   English   中英

Angular 2+ http get() JSON 数据。 不能 .filter 数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM