是否可以为对象设置多个垫选择下拉值?

问题描述

在选择模式下使用mat-select,如果选择选项中的值是对象,是否可以预先设置选择的值?

例如,如果选择中的选项如下所示

toppingList: any[] = [
  { id: 1,description: 'Extra cheese' },{ id: 2,description: 'Mushroom' },{ id: 3,description: 'Onion' },{ id: 4,description: 'Pepperoni' },{ id: 5,description: 'Sausage' },{ id: 6,description: 'Tomato' }
];

那么您可以这样为垫选择预先设置所选值吗?

this.toppings.setValue([{ id: 1,description: 'Extra Cheese' }]);

使用此stackblitz as an example,您会看到表单值已根据需要进行设置,但是下拉菜单中的选择按钮并未显示为选中状态。

这是否有可能,或者我做错了什么?

解决方法

我知道两个对象相等,例如在Java中,您需要编写equal / hashcode来检测哪个对象等于另一个对象。

您将选择值绑定到对象,而打字稿无法理解将对象进行比较的情况。因此,我更改了您的示例并将选项的值绑定到id,它可以正常工作!

查看此stackblits

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...