30秒到達戰場
2023-11-02 21:28:09
自動完成功能可分別觸發每個表單控件的過濾功能。有沒有辦法對語句進行分組,而不是像我下面那樣單獨使用多個可觀察值并分別寫下來?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
提交
取消