仅在Angular 2中键入至少1个字母后才显示自动完成下拉列表
发布时间:2020-12-17 17:57:27 所属栏目:安全 来源:网络整理
导读:我想使用Angular 2和 angular material design实现自动完成,除非他们输入至少1个字母,否则不应出现选项. 默认情况下,即使输入为空,自动完成也可在焦点上切换,因此我想更改此行为. 我试图在mat-autocomplete元素* ngIf =“inputField.value”上添加一个条件,
我想使用Angular 2和
angular material design实现自动完成,除非他们输入至少1个字母,否则不应出现选项.
默认情况下,即使输入为空,自动完成也可在焦点上切换,因此我想更改此行为. 我试图在mat-autocomplete元素* ngIf =“inputField.value”上添加一个条件,以便仅在输入有值时显示选项,但它返回错误: 错误:尝试打开未完成的mat-autocomplete实例.确保传递给matAutocomplete的id是正确的,并且您尝试在ngAfterContentInit挂钩后打开它. 另外,我试图在输入字段的[matAutocomplete] =“auto”中添加一个条件,但它也会返回错误. 我注意到,当显示自动完成选项时,元素cdk-overlay-container和mat-autocomplete-panel在关闭< / body>之前创建,并且它们与原始组件断开连接,因此很难通过css隐藏. 你有想法怎么做吗? 请按照Stackblitz的规定进行操作. 谢谢! 解决方法
如果键入的文本长度等于0,请不要调用过滤器函数.
this.filteredOptions = this.myControl.valueChanges pipe( startWith(''),map(val => val.length >= 1 ? this.filter(val): []) ); Demo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |