【问题标题】:How to prevent dynamically added parent class from adding to its child elements in Angular Material,mat-selection-list?如何防止动态添加的父类添加到Angular Material,mat-selection-list中的子元素?
【发布时间】:2019-03-05 01:43:27
【问题描述】:

我创建了一个对话框,其中包含可以选择的选项(用户)列表,使用mat-selection-list。我有一个用例,我应该禁止已经选择的用户列表再次被选中/单击。

因此,我从事件中获取选定的用户,添加一个标志以了解该用户是否已被选中,并根据我拥有的标志返回的布尔值禁用 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 添加到复选框(子)中。我想防止这种情况发生。

或者建议我一种有效的方法来覆盖mat-checkbox 类并将checked 类添加到其中,即使mat-list-option 已添加禁用类。

感谢您的帮助。

更新: 通过添加 mat-list-option selected 属性来解决它。错过那个我是多么愚蠢。大声笑。

【问题讨论】:

  • 您是否可以创建一个示例StackBlitz 来复制此问题?
  • 当然,到目前为止,我还不能这样做。明天早上我也许可以做到。对不起。

标签: html css angular angular-material angular6


【解决方案1】:
 <mat-list-option *ngFor="let item of filteredArray" [value]="item" [disabled]="item.isSelected" [selected]="item.isSelected">

在我同事的帮助下能够解决这个问题。

我没找对地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 2021-05-13
    • 2015-12-19
    相关资源
    最近更新 更多