以下是一些代码示例,演示如何在Angular中正确使用Observable过滤器。
import { Component } from '@angular/core';
import { of } from 'rxjs';
import { filter } from 'rxjs/operators';
@Component({
selector: 'app-root',
template: '{{ data$ | async }}',
})
export class AppComponent {
data$ = of(1, 2, 3, 4, 5).pipe(filter((n) => n > 3));
}
在上述代码示例中,filter操作符用于过滤Observable发出的数据,仅允许发出大于3的值。
import { Component } from '@angular/core';
import { Observable } from 'rxjs';
@Component({
selector: 'app-root',
template: '{{ data$ | async | filter:filterFn }}',
})
export class AppComponent {
data$!: Observable;
filterFn = (n: number) => n > 3;
ngOnInit() {
this.data$ = of([1, 2, 3, 4, 5]);
}
}
在上面的代码示例中,通过使用async和filter管道将数据过滤到模板中。
import { Component } from '@angular/core';
import { Observable } from 'rxjs';
@Component({
selector: 'app-root',
template: '{{ filteredData }}',
})
export class AppComponent {
dataArr = [1, 2, 3, 4, 5];
// 过滤数据
filteredData = this.dataArr.filter((n) => n > 3);
}
在上述代码片段中,通过在Typescript中使用数组过滤器来过滤数据。注意,此方法仅适用于固定大小的数据集。
这些方法可以解决Angular中Observable过滤不起作用的问题。