我使用 mat-selection-list
创建了一个对话框,其中包含可以选择的选项(用户)列表。我有一个用例,我应该禁止已选择的用户列表再次被选择/点击。
因此,我从事件中获取选定的用户,添加一个标志以了解用户是否已被选中,并根据返回的 bool 值禁用 mat-list-option
从我的旗帜上。这是相关代码。
<mat-selection-list
#listItem
(selectionChange)="handleSelection($event, listItem.selectedOptions)">
<mat-list-option
*ngFor="let item of filteredArray"
[value]="item"
[disabled]="item.isSelected">
{{getDisplayValue(item)}}
<mat-divider></mat-divider>
</mat-list-option>
</mat-selection-list>
现在,问题是,我想为已经选择的用户显示一个刻度线,因为 mat-list-option
有一个 mat-checkbox
子元素.
因此,当我禁用 mat-list-option
(parent) 时,它还会将类 mat-psuedo-checkbox-disabled
添加到复选框(child)中.我想防止这种情况发生。
或者建议我一种有效的方法来覆盖 mat-checkbox
类并向其添加 checked
类,即使 mat-list-option
已添加禁用类。
感谢任何帮助,谢谢。
更新: 通过向其添加 mat-list-option selected 属性来解决它。我错过那个是多么愚蠢。大声笑。
最佳答案
<mat-list-option *ngFor="let item of filteredArray" [value]="item" [disabled]="item.isSelected" [selected]="item.isSelected">
能够在同事的帮助下解决这个问题。
我没看对地方。
关于html - 如何防止动态添加的父类添加到 Angular Material,mat-selection-list 中的子元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52565843/