我有一个角度为2的应用程序,我已经设法在我的页面上设置一个输入,其自动完成功能可以调用api并确保服务器端过滤和返回值。很像这里找到的教程。Angular 2加载数据一次,并在本地过滤Observable
现在,我正在尝试给我的页面多输入一些内容,但是我不需要在服务器端对它们进行过滤。那将是无效的。更好的是只要我的组件加载,然后过滤组件中的所有值。这导致我不缺问题。我有一个API调用,返回我需要的3个字符串数组。我正在使用的标准方法,像这样来自一个角服务:
getFormFilters(): Observable<FormFilterModel> {
return this._http.get(this.baseUrl+this.getFormFiltersPath)
.map(res => res.json() as FormFilterModel);
}
型号:
export interface FormFilterModel {
array1: string[];
array2: string[];
array3: string[];
}
这工作得很好,我也得到我的观察到后部。我被卡住的地方是如何现在过滤这3个数组?我有我的输入连接到我的表单控件,就像我对服务器端过滤输入。我无法弄清楚如何到达我的Observable中的实际数组来过滤它们。下面是我在哪里与代码:
this.filteredArray1$ = this.searchForm.controls.array1Search.valueChanges
.debounceTime(300)
.distinctUntilChanged()
.switchMap(term => //some filtering here of formFilterModel$ to return a subset of array1 based on input)
我可以过滤通过正则表达式就好了一个数组,但得到在观察到实际的数组是我似乎无法做到。
您可以使用Let。看看这篇文章本周出来! https://netbasal.com/take-advantage-of-the-let-operator-in-angular-d351fd4bd1d9 – Dan