我有一个service.ts,我使用get()方法(http)从本地JSON文件中获取数据。它工作正常。
a->palavra
在我的班上,我有“嫌疑”:
getMusic() {
return this.http.get('assets/music.json')
.map((res:Response) => res.json())
我的JSON文件如下所示:
ngOnInit() {this.musicService.getMusic().subscribe(
data => { this.music = data.music}
);
}
一切都很完美。那么现在我正在尝试过滤我的数据,所以它只显示没有= 11的音乐。
我有这个进口:
{
"music" : [
{
"no": 11,
"name": "Music 1",
}, ...... aso....
我尝试过几件事。包括过滤数字而不是字符串,使用==而不是===,将.filter放在内部或外部.map aso。当我尝试这个时,我根本得不到任何结果。我没有错误,只是没有结果:
//import 'rxjs/add/operator/map';
//import 'rxjs/add/operator/filter';
import 'rxjs/Rx';
答案 0 :(得分: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'));
}
答案 1 :(得分:0)
filter
函数应用于数组而不是它的实例
尝试使用
this.filteredArr = this.music.filter(x=>x.name == 'music 1'); //some condition