是否可以 - 從管道內 - 查詢Firebase數據庫並返回值?Angular4/AngularFire2:從管道內查詢firebase?
我有以下的HTML
<div *ngFor="let item of items">
<h2>
{{item.firstName}} {{item.middleName}} {{item.lastName}}
</h2>
<div *ngFor="let lifeItem of (item.$key | event: 'life')">
Born: {{lifeItem.start}}
</div>
</div>
而下面的管道:
import { Pipe, PipeTransform } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
@Pipe({
name: 'event'
})
export class EventPipe implements PipeTransform {
subscriptions: Array<any> = new Array<any>();
items: Array<any> = new Array<any>();
constructor(
protected db: AngularFireDatabase
){}
public transform(personId: any, eventType: any) {
if (!personId || !eventType) return [];
console.info("personId: " + personId);
console.info("eventType: " + eventType);
this.subscriptions.push(
this.db.list('/event', {
query: {
limitToLast: 200
}
}).subscribe(items => {
console.info(items);
this.items = items;
return this.items;
})
);
}
}
當我運行它,我得到這個在控制檯...
...但沒有任何東西在頁面上的相應部分呈現。
你從哪裏得到'Observable'?我嘗試從'rxjs/Observable'中導入{Observable};'然後它說'''的'屬性'不存在'typeof Observable' –
'從'rxjs/Observable'導入{Observable};'和'import' rxjs/add/observable/of';' –
是否有可能進一步過濾管道內的項目。我有這個: 'if(!personId ||!type)return Observable.of([]); \t \t令輸出= this.db.list( '/事件',{ 查詢:{ \t \t \t \t orderByChild: '人', \t \t \t \t equalTo:PERSONID } \t \t}); \t \t return output;'是否有可能進一步過濾「輸出」,以便它只包含與事件類型匹配的項目? –