在users.service.ts内部有一个angularFirestore可观察数组:
$users: Observable<Array<any>>;
constructor()
{
this.$users = this.angularFirestore.collection('users').valueChanges();
}
这是对象类:
class User
{
name: string;
status: boolean;
index: number;
}
我需要基于多个字段进行过滤,但是以某种方式在users.component.ts中使用以下代码不会订阅任何结果:
users: Users[];
ngOnInit()
{
this.usersService.$users.pipe
(filter((user: User) => user.name == 'some value'))
.subscribe((users: User[]) =>
{
this.users = users;
});
}
我的最终目标是能够过滤以包含 user.name搜索字符串和user.status == true,并排除其余无效结果。
我想在没有管道的情况下进行此操作。希望对纠正和改进现有代码以实现上述目标的任何帮助。预先感谢!
答案 0 :(得分:1)
不确定0
的问题。但是,一旦将数组放入.pipe
.subscribe
顺便说一句,kunwar97提到的是没有错误。这是将运算符应用于Rxjs6中的Observables的唯一方法。
答案 1 :(得分:-1)
这是Angular 6中的已知问题。 请参考此链接。 https://github.com/angular/angularfire2/issues/1748
安装rxjs-compact将解决您的问题
npm install rxjs@6 rxjs-compat@6 --save