rxjs6 过滤器 Observable<Array<any>>
rxjs6 filter Observable<Array<any>>
我在里面有一个 angularFirestore 可观察数组 users.service.ts:
$users: Observable<Array<any>>;
constructor()
{
this.$users = this.angularFirestore.collection('users').valueChanges();
}
这是对象 class:
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 并排除其余无效结果.
我想在没有管道的情况下执行此操作。对于纠正和改进现有代码以实现上述目标的任何帮助,我们将不胜感激。提前致谢!
这是 Angular6 中的已知问题。
请参考这个link。
https://github.com/angular/angularfire2/issues/1748
安装 rxjs-compact 将解决您的问题
npm install rxjs@6 rxjs-compat@6 --save
不太确定 .pipe
你的问题是什么。但是,一旦将数组放入 .subscribe
中,您也可以这样做
users: Users[];
ngOnInit() {
this.usersService.$users
.subscribe((users: User[]) => {
this.users = users.filter(user => user.status && user.name === 'some value')
});
}
顺便说一句,不是 kunwar97 提到的错误。这是在 Rxjs6 中将运算符应用于 Observables 的唯一方法。
我在里面有一个 angularFirestore 可观察数组 users.service.ts:
$users: Observable<Array<any>>;
constructor()
{
this.$users = this.angularFirestore.collection('users').valueChanges();
}
这是对象 class:
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 并排除其余无效结果.
我想在没有管道的情况下执行此操作。对于纠正和改进现有代码以实现上述目标的任何帮助,我们将不胜感激。提前致谢!
这是 Angular6 中的已知问题。 请参考这个link。 https://github.com/angular/angularfire2/issues/1748
安装 rxjs-compact 将解决您的问题
npm install rxjs@6 rxjs-compat@6 --save
不太确定 .pipe
你的问题是什么。但是,一旦将数组放入 .subscribe
users: Users[];
ngOnInit() {
this.usersService.$users
.subscribe((users: User[]) => {
this.users = users.filter(user => user.status && user.name === 'some value')
});
}
顺便说一句,不是 kunwar97 提到的错误。这是在 Rxjs6 中将运算符应用于 Observables 的唯一方法。