Angular 2 return 从服务过滤数据
Angular 2 return filtered data from services
我是 angular js 的新手,我想 return 从服务到组件的过滤数据。
这是我的 json 喜欢的样子
{
"emails": [
{
"list": [
{
"id": 1,
"subject": "Test Subject 1"
},
{
"id": 2,
"subject": "Test Subject 2"
}]
},
{
"list": [
{
"id": 3,
"subject": "Test Subject 3"
},
{
"id": 4,
"subject": "Test Subject 4"
}]
}
]
}
这是我的服务
export class EmailService {
emails: any
constructor(private http: Http) {}
getEmailItem(id: number | string) {
return this.http
.get('../../../assets/js/data/email-list.json')
.map(data => {data.json(); return data.json();});
}
}
我想return数据如下,怎么办?
{
"id": 1,
"subject": "Test Subject 1"
},
任何指南将不胜感激,谢谢
您可以展开 json 然后应用过滤器,
getEmailItem(id: number | string) {
let flatData = [];
return this.http
.get('../../../assets/js/data/email-list.json')
.map(data => {data.json(); return data.json();})
.map(this.flatEmailList)
.filter(email => email.id == id);
}
flatEmailList(data){
let flatData = [];
data.emails.map(emails => flatData = flatData.concat(emails.list));
return flatData;
}
我是 angular js 的新手,我想 return 从服务到组件的过滤数据。
这是我的 json 喜欢的样子
{
"emails": [
{
"list": [
{
"id": 1,
"subject": "Test Subject 1"
},
{
"id": 2,
"subject": "Test Subject 2"
}]
},
{
"list": [
{
"id": 3,
"subject": "Test Subject 3"
},
{
"id": 4,
"subject": "Test Subject 4"
}]
}
]
}
这是我的服务
export class EmailService {
emails: any
constructor(private http: Http) {}
getEmailItem(id: number | string) {
return this.http
.get('../../../assets/js/data/email-list.json')
.map(data => {data.json(); return data.json();});
}
}
我想return数据如下,怎么办?
{ "id": 1, "subject": "Test Subject 1" },
任何指南将不胜感激,谢谢
您可以展开 json 然后应用过滤器,
getEmailItem(id: number | string) {
let flatData = [];
return this.http
.get('../../../assets/js/data/email-list.json')
.map(data => {data.json(); return data.json();})
.map(this.flatEmailList)
.filter(email => email.id == id);
}
flatEmailList(data){
let flatData = [];
data.emails.map(emails => flatData = flatData.concat(emails.list));
return flatData;
}