angular - Angular Material 自动完成使用对象属性作为值
问题描述
我有一个要在自动完成中使用的对象列表。当一个选项被选中时,formControl 获取所选项的值。现在我不关心整个对象,我只关心 ID。我更改了选项以将 id 作为值,但随后 textinput 仍然为空。
<mat-option *ngFor="let option of filteredOptions | async" [value]="option.id">
{{option.name}}
</mat-option>
示例:https ://stackblitz.com/edit/angular-b97y6e-jwm2jq?file=src%2Fapp%2Fautocomplete-display-example.ts
有没有办法将对象属性用作值?
解决方案
这里的问题是 [value] 始终是字符串。请改用 [ngValue]。在这里您可以传递对象和数字(它们是 javascript 中的对象)等。
Angular 5 中 value 和 ngValue 的区别
<mat-option *ngFor="let option of filteredOptions | async" [ngvalue]="option.id">
{{option.name}}
</mat-option>
推荐阅读
- matlab - 使用 FindMatlab.cmake 中的函数
- dart - 如何将十六进制字符串转换为十六进制整数?
- sql - Postgres:关于与隐式冲突目标的冲突
- python - 比较 Pandas Dataframe 中的元素
- c# - 安全问题:将密钥存储为字符串的安全性
- javascript - 如何将一些对象添加到 sendMessage 或将此对象添加到 telegraf.js 库中的 Extra
- python - 如何将正则表达式匹配的输出格式化为一个简单的列表,可用于在 pandas 数据框中选择行?
- r - 长度错误(obj):“长度”中的类名太长
- python - 从 youtube 下载视频并转换为 MP4
- node.js - 我需要在 node.js 中创建一个“触摸”功能