是否可以 - 从管道内 - 查询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;'是否有可能进一步过滤“输出”,以便它只包含与事件类型匹配的项目? –