【发布时间】:2020-03-16 07:46:03
【问题描述】:
我想在我的代码上实现这个filtering,但我在实现它时遇到了问题。
我在执行这行代码时出错:
function search(text: string, pipe: PipeTransform): Country[] {
return COUNTRIES.filter(country => {
const term = text.toLowerCase();
return country.name.toLowerCase().includes(term)
|| pipe.transform(country.area).includes(term)
|| pipe.transform(country.population).includes(term);
});
}
我无法更改 COUNTRIES.filter,当我尝试在其上放置/替换我的函数时出现错误。我收到此错误“属性'过滤器'不存在于类型'void'”
这是我的代码。
export class MyComponent implements OnInit {
countries: Observable<any[]>;
filter = new FormControl('');
listQuestions = [];
constructor(private extractorService: ExtractorService,
private fstore: AngularFirestore) { }
ngOnInit() {
this.filterFunction();
}
filterFunction(){
this.countries = this.filter.valueChanges.pipe(
startWith(''),
map(text => this.search(text))
);
}
search(text: string): any[] {
return this.sampleFunction().filter(country => {
const term = text.toLowerCase();
return country.caseID.toLowerCase().includes(term)
|| (country.word).toLowerCase().includes(term)
|| (country.product).toLowerCase().includes(term);
});
}
sampleFunction() {
this.extractorService.dbFirestore().subscribe(data => {
this.listQuestions = data.map(x => {
return x.payload.doc.data();
})
})
}
我可以通过 sampleFunction() 从 firebase 获取所有数据。
顺便说一句,我使用以下代码在 html 上加载数据:
<tr *ngFor="let item of countries | async">
您能否帮我将我在 sampleFunction() 上获得的数据用于指南使用“return COUNTRIES.filter(country => {”行的搜索功能
【问题讨论】:
-
能否请您复制相同内容并提供 StackBlitz 上的链接
-
我正在使用这个示例 (ng-bootstrap.github.io/#/components/table/examples#filtering)....这里的问题是我无法替换模拟数据 COUNTRIES 并使用来自数据库的我自己的数据
标签: javascript angular firebase google-cloud-firestore angularfire2