2016-03-21 50 views
0

Q)如何運行一個函數(例如:將每個項目的標識添加到標題末尾的函數)此次調用中的結果行?Ionic 2:Http.get()爲響應結果中的每一行運行函數Rx

假設下面我的回答是這樣的:

[ 
    { id: 1. title: 'first', completed: 1 }, 
    { id: 2. title: 'second', completed: 1 }, 
    { id: 3. title: 'third', completed: 1 } 
] 

我getTodos代碼:

return this._http.get(url, { 
    headers: headers 
}).map(res => <Todo[]>res.json()); 

我的待辦事項接口:

export interface Todo { 
    id: number; 
    title: string; 
    completed: boolean; 
} 

我的例子功能,我想在每個響應行上運行:

function addToTitle(item) { 
    item.title += " " + item.id; 
} 

回答

4

可以使用陣列的map功能再添map操作:

return this._http.get(url, { 
    headers: headers 
}).map(res => <Todo[]>res.json()) 
.map((todos) => { 
    todos.forEach((todo) => { 
    todo.title += ' ' + todo.id; 
    }); 
    return todos; 
}); 
+0

我嘗試這樣做,但它實際上並沒有再回到,成爲無效! – Dave

+0

你是什麼意思的「變成空洞」?在訂閱返回的observable時,您不會收到數據。 –

+0

是的。該方法不返回。虛空。 – Dave