【问题标题】:To make default selection in autocomplete (material)在自动完成(材料)中进行默认选择
【发布时间】:2019-02-01 15:37:42
【问题描述】:

我正在为我的项目使用自动完成组件(即显示值自动完成)。这是stackblitz 示例

如何将任何一个列表项设置为默认值?像这样

【问题讨论】:

    标签: angular typescript angular-material


    【解决方案1】:

    使用 FormControl SetValue 方法设置默认值

    this.myControl.setValue( {name: 'Mary'});
    

    例如:https://stackblitz.com/edit/angular-8r153h

    【讨论】:

    • @Chellappan,传递不同的值和文本怎么样?
    • 你的意思是不同的键值对?
    【解决方案2】:

    设置FormControl的初始值

    myControl = new FormControl({name: 'Shelley'});
    

    【讨论】:

      【解决方案3】:

      使用 RxJs 的 tap 运算符:stackblitz

      ngOnInit() {
          this.filteredOptions = this.myControl.valueChanges
            .pipe(
              startWith<string | User>(''),
              map(value => typeof value === 'string' ? value : value.name),
              map(name => name ? this._filter(name) : this.options.slice()),
              tap(() => this.myControl.setValue(this.options[0]))
            );
        }
      

      【讨论】:

      • 感谢您的帮助。
      • 这个例子没有在输入值时过滤值。
      猜你喜欢
      • 2017-07-14
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多