我正在建立一个mat-table,该mat-table显示数据源中的一些值,并在每行中有一个mat-select,其中有多个select。该表的数据源是一个对象数组(“ CarManufacturer”),其中包含另一个对象数组(“ Brand”)。在选垫中,我显示了所有“品牌”的完整列表。
目前,我无法取消/选择那些“品牌”。它们被标记为已选中或未选中。我无法更改。
我创建了一个函数,该函数返回一个数字数组(品牌ID),该数组将输入mat-select的[value]。这在下拉菜单中标记了CarManufactors数组中的品牌,但是我无法在下拉菜单中选择任何内容。
代码:https://stackblitz.com/edit/angular-skrrhb
我希望我可以更改下拉菜单的值。目前,我无法取消/选择这些值。
答案 0 :(得分:1)
问题在于<mat-select [value]="getArray(element.brands)" multiple>
总是返回相同的值,无论如何。
一种解决方案是在品牌界面中添加brandSelected并在其中存储值:
export interface CarManufacturer {
id: number;
name: string;
brands: Brand[];
brandsSelected?: number[];
}
然后在mat-select中应用双向数据绑定,如下所示:
<mat-select [(value)]="element.brandSelected" multiple>
您可以在此处查看工作示例:
https://stackblitz.com/edit/angular-ujirgb?file=src%2Fapp%2Fapp.component.html