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

问题描述 投票:0回答:1

在多模式下使用 mat-select,如果作为选择选项一部分的值是对象,是否可以预先设置所选值?

例如如果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 为例 您会看到表单值已根据需要设置,但下拉列表中的选择按钮本身并未显示为已选中。

这有可能吗,还是我做错了什么?

angular-material multiple-select multipleselection
1个回答
1
投票

据我所知,对于两个对象的相等性,例如在 java 中,您需要编写相等/哈希码来检测哪个对象等于另一个对象。

您将所选值绑定到对象,打字稿无法理解如何将对象比较在一起。所以我将您的示例和选项的绑定值更改为 id 并且它有效!

看到这个stackblits

© www.soinside.com 2019 - 2024. All rights reserved.