问题标签 [mat-select]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
588 浏览

angular - 仅当仅存在一个值时才设置 mat-select 默认值

我的 Angular 项目中有一个 mat-select,它从服务器获取值并显示它们。我需要做的是确保在收到的值恰好是 1 的情况下,将其显示为默认值,但仅在这种情况下,因为这些值不是预先确定的。有没有办法做到这一点?

HTML:

TS:

主页组件中的 HTML:

0 投票
2 回答
436 浏览

javascript - 基于垫选择变化的跨度角动态标志图标

我有一个 mat-select ,我想根据所选选项更改 mat-label 跨度中的标志图标。

显示初始标志,单击后跨度没有变化。

选项列表中的标志工作正常,所以问题只涉及label

我正在尝试类似的东西:

HTML:

TS:

我也尝试过 getter/setter,但在使用 mat-select 时,setter 似乎不起作用。

在此先感谢您的帮助!

0 投票
1 回答
33 浏览

angular - 用户类型 3-4 字符的 Mat-Select Angular 选项过滤器

我想根据键盘上的用户类型字符突出显示/跳转到选项。默认情况下,它只需要第一个字符。但我希望如果用户输入 3-4 个字符,那么它应该跳转到以输入的 3-4 个字符开头的选项。EG mat-select 中有数千个 mat-option,当用户键入“flo”时,突出显示应跳转到以“flo”开头的第一个选项

ts文件代码

当前行为 => 如果用户键入“flo”,则它首先跳转以“f”开头的选项,然后以“l”开头,最后突出显示/聚焦以“o”开头的第一个选项。

预期行为 => 如果用户键入“flo”,那么它应该跳转/突出显示以“flo”开头的第一个选项

尝试过的例子 keydown="$event.stopPorpogation"

实现预期行为的任何解决方案

0 投票
0 回答
245 浏览

angular - Angular Material - mat-select 无故停止工作

我的一个组件中有一个 mat-select 组件,如下所示

直到昨天,这个 mat-select 一直运行良好,显示选项,甚至执行选择操作。当我今天开始使用我的 Angular 应用程序时,它没有显示任何选项,当我单击它时只会突出显示 mat-label。代码中绝对没有任何改变。

graph1_type_query 的值是''在 .ts 文件中的声明,之后在整个代码中都没有触及。graph1_query 的值按预期工作。

到目前为止我遇到的情况:

  1. 使用[(value)]而不是 [(ngModel)]。没区别。
  2. 检查我的type_dropdown数组是否实际填充。将其记录到控制台并在 p 标签中打印出整个数组(使用相同的 ngFor 循环)并且它可以工作,甚至可以按预期随文本输入值(graph1_query)一起改变。
  3. 我什至用 mat-select 的一个简单示例替换了 mat-select,但即使这样也没有显示任何选项。
  1. 检查角度和角度材料的兼容性
    角度/核心:12.2.2
    角度/材料:12.2.2
    还尝试了材料版本 11.2.13 和 12.2.5
  2. 使用占位符属性
  3. 检查 App 模块文件中是否已导入 MatSelectModule。我还有其他具有类似代码的工作垫选择组件。

更新:它与本机选择完美配合。mat-select 的问题可能是什么?

0 投票
1 回答
148 浏览

angular - 垫选择面板打开总是假

我有以下模板:

以下测试失败:

但是,如果我将测试中的第一行更改为:

const expected = optionsData.map(o => o.value)

那么测试就通过了。这意味着panelOpen始终为 false 并且仅获取值而不是viewValue,即使我单击了“选择”元素。

为什么 click() 不会将panelOpen从 false 更改为 true?

0 投票
2 回答
87 浏览

angular - 将在 mat select 中保持多重选择的表单控件设置为 null

配合选择具有多选功能。如何将持有这些多项选择的表单控件值设置为空......在我的情况下它不起作用......

在模板中

单击重置按钮时,类别的值不会从表单值中清除,而只能从输入字段中清除

0 投票
2 回答
455 浏览

angular - Angular-禁用按钮,直到选择下拉选项

我做了一个下拉菜单 在此处输入图像描述 如您所见,有空的文本区域并且没有选择任何选项。我想禁用所有按钮,直到选择任何选项并且 textareas 已满,这意味着必须选择一个选项。我该怎么做?

这是我的代码:

ts文件:

0 投票
3 回答
251 浏览

angular - Angular-防止从下拉列表中选择相同的选项

我使用文本区域制作了这个下拉菜单,用于在角度材料对话框中输入。下拉列表中只有三个选项(到目前为止)-“英语”、“法语”和“加拿大法语”。我已经默认禁用了“英语”。现在,对于其余的选项,当我单击“添加新语言”按钮并选择一个选项(法语;比如说)并添加文本时,我可以禁用选定的选项,这样当用户添加第三种语言时,他们就不能再次选择它。它工作正常。像这样(这是没有点击保存按钮) 在此处输入图像描述 现在问题从这里开始。当我选择“法语”(比如说)并点击保存按钮时。并再次打开对话框。在添加第三种语言的选项中,我再次看到“法语”和“加拿大法语”。在此处输入图像描述

这是 ts 代码:

我在很多地方进行控制台日志记录,最后设法绘制到可能发生问题的这些地方。在console.log(lang)中,我看到,当我选择“French”时,标志 canEdit 变为 false。但是在 中console.log(this.rows),当我选择“French”时,标志 canEdit 没有变为 false

如何解决问题?

HTML 代码:

这是模态打开的地方:

当我console.log(food)能看到canEdit:false. 但是当我再次打开模式时,所选项目再次console.log(this.dialogData)canEdit“True” 在此处输入图像描述

在此先感谢您的帮助!

0 投票
2 回答
436 浏览

angular - 使用 mat select multiple 实现搜索过滤器

我正在尝试为多个 mat-select 实现搜索过滤器,但是在搜索和选择时遇到了问题。

我的搜索功能工作正常。但是,如果我搜索某些内容,选择它,然后搜索其他内容并选择它,则只保留最后选择的项目。这是因为我的搜索没有被重置,但我不知道该怎么做。

当我关闭垫选择面板时,我试图清除我的搜索输入,但它似乎不起作用。

HTML:

TS:

0 投票
0 回答
28 浏览

angular - 自定义 ControlValueAccessor 控件上的 patchValue 时的自定义操作

我的自定义控件中有一个垫选择,带有延迟加载和搜索控件

这就是它在组件中的使用方式

现在,当我在这个控件上 patchValue 时,我想在这个类上调用自定义函数,因为在 onChange 上我收到完整的项目列表,而在 patchValue 上我想将它们设置为在我的自定义控件下选中

有没有办法做到这一点?提前致谢!