在自动完成(材料)中进行默认选择

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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]))
      );
  

【讨论】:

感谢您的帮助。 这个例子没有在输入值时过滤值。

以上是关于在自动完成(材料)中进行默认选择的主要内容,如果未能解决你的问题,请参考以下文章

角度材料自动完成 - 如何防止键盘输入以在建议面板中选择一个选项

材料角度自动完成:选择选项后如何在屏幕中保留垫子选项?

方法在角度材料自动完成中被多次调用

带有对象代码和描述的角材料自动完成

如何使用选项组重置材料自动完成中的自定义过滤器

来自数组 JS 的自动完成输入表单