FirebaseListObservableとBehaviorSubjectが入力フィルタをリスンしています。md-table FirebaseListObservableを持つDataSource
今、両方の人をマージして、入力からの値でフィルタリングされた配列を返して、mdテーブルにフィードしたいと思います。
私はhttps://material.angular.io/components/table/examplesフィルタリングテーブルからexempleを得ました。
誰でも手伝ってもらえますか?ありがとうございました。
編集:
は、今では働いていますが、コンポーネントをロードするとき、私はエラーを取得しています。 入力フィールドに何かを書き終えたら、うまく動作します。
ERROR TypeError:ストリームが予期されていた場所で 'undefined'を指定しました。 Observable、Promise、Array、またはIterableを提供できます。
私は間違っていますか?
export class DataSourcePessoas extends DataSource<any> {
pessoas: FirebaseListObservable<any[]>;
_filterChange = new BehaviorSubject('');
get filter(): string { return this._filterChange.value; }
set filter(filter: string) { this._filterChange.next(filter); }
dados: any[] = [];
constructor(private pessoasService: FirebasePessoasService) {
super();
}
connect(): Observable<any> {
const displayDataChanges = [
this.pessoas,
this._filterChange,
];
this.pessoas = this.pessoasService.BuscarPessoas();
this.pessoas.subscribe(items => {console.log(items); this.dados = items});
return Observable.merge(...displayDataChanges).map(() => {
return this.dados.filter(valor => {
return valor.nome.toLowerCase().indexOf(this.filter.toLowerCase()) !== -1})});
}
disconnect() {}
}
これにBehaviorSubjectを変更私の問題を解決するのに役立ちます願っています。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-代わりに)。 - [レビューから](/レビュー/低品質の投稿/ 16847417) – Aurril
アドバイスをいただきありがとうございます。 firebaseからリストを取得し、 "this.filter"を使用して値をフィルタリングして、私のテーブルに表示することをお勧めしますか? –
@TaisonMorris簡単なサンプルコードを追加しました。 –