我想在屏幕上顯示IMessage
的列表,並且能夠使用Pipe
對它們進行過濾。 該消息實際上是一個Observable<IMessage[]>
,我想通過檢查它的isPrivate
屬性來過濾每個IMessage
。 的MessageStatusPipe
的代碼如下所示:Angular 2過濾一個Observationbble <object[]>
export class MessageStatusPipe {
transform(message: Observable<IMessage[]>, privateFilter: bool) {
//Here I want to return the Messages which the pass the privateFilter, but how?
}
}
我看過一些問題,這似乎非常相似,但我似乎不能夠應用該解決方案。 由Luka Jacobowitz提供的以下解決方案似乎正是我需要的。 https://stackoverflow.com/questions/37991713/simple-filter-on-array-of-rxjs-observable#=
============更新與答案=============
正如梅爾指出,管返回一個布爾值,而不是包含與過濾器匹配的項目的子數組。我的工作管現在看起來是這樣的:
export class MessageStatusPipe {
transform(messages: Observable<IMessage[]>, privateFilter: bool) {
return messages.map(m => m.filter((message, i) => {
return message.isPrivate == privateFilter;
}));
}
}
''
你的管道不應該返回一個布爾,它應該返回符合條件的子數組 – Meir
你是對的,我用一個工作解決方案更新了我的答案。 – Bunnynut