将多个控制值更改分组在一起

自动完成功能可分别触发每个表单控件的过滤功能。


有没有办法对语句进行分组,而不是像我下面那样单独使用多个可观察值并分别写下来?


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) : [])

      );


30秒到达战场
浏览 56回答 1
1回答

繁华开满天机

你可以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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript