自动完成功能可分别触发每个表单控件的过滤功能。有没有办法对语句进行分组,而不是像我下面那样单独使用多个可观察值并分别写下来?this.filteredTypesCodes = this.assetTypeCodeControl.valueChanges .pipe( startWith(''), map(value => value.length >= 2 ? this._filter(value) : []) ); this.filteredSubTypesCodes = this.assetSubTypeCodeControl.valueChanges .pipe( startWith(''), map(value => value.length >= 2 ? this._filter(value) : []) ); this.filteredMakesCodes = this.assetMakeCodeControl.valueChanges .pipe( startWith(''), map(value => value.length >= 2 ? this._filter(value) : []) );
1 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
你可以merge从 Rxjs 将多个可观察值合并为一个,但我认为这对你不起作用,因为你需要单独使用每个可观察值,你可以做的是,为了停止重复自己,你可以将重复的代码放在一个单独的代码中函数,就像这样:
createFilter(formControl) {
return formControl.valueChanges
.pipe(
startWith(''),
map(value => value.length >= 2 ? this._filter(value) : [])
);
}
然后您可以使用它来创建过滤器:
this.filteredTypesCodes = this.createFilter(this.assetTypeCodeControl)
this.filteredSubTypesCodes = this.createFilter(this.assetSubTypeCodeControl)
this.filteredMakesCodes = this.createFilter(this.assetMakeCodeControl)
添加回答
举报
0/150
提交
取消