在多模式下使用 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 为例 您会看到表单值已根据需要设置,但下拉列表中的选择按钮本身并未显示为已选中。
这有可能吗,还是我做错了什么?
据我所知,对于两个对象的相等性,例如在 java 中,您需要编写相等/哈希码来检测哪个对象等于另一个对象。
您将所选值绑定到对象,打字稿无法理解如何将对象比较在一起。所以我将您的示例和选项的绑定值更改为 id 并且它有效!
看到这个stackblits