垫选带复选框

JBo*_*hUA 1 angular-material

我真的很想通过垫选择基本功能,但是要有复选框。如果我打开[multiple],则得到复选框,但同时也得到了多选功能,我需要单选和复选框。

Ani*_*had 6

您可以达到这样的要求,

这是例子

app.component.html

<mat-form-field>
    <mat-select placeholder="Toppings">
        <mat-option *ngFor="let topping of toppingList; let i =index" [value]="topping">
            <mat-checkbox [checked]="selected === i" (change)="onChange(topping);selected = i"> {{topping}}</mat-checkbox>
        </mat-option>
    </mat-select>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)

和在 app.component.ts

export class AppComponent {
  toppingList: string[] = ['Extra cheese', 'Mushroom', 'Onion', 'Pepperoni', 'Sausage'];
  selected = -1;

  /*checkbox change event*/
  onChange(event) {
    console.log(event)
  }
}
Run Code Online (Sandbox Code Playgroud)

这是Stackblitz演示

  • 我对投反对票感到沮丧,除非我发布赏金,否则没有人回复我的帖子,你恢复了我对网站的信心! (3认同)
  • 实际的问题是,对阅读理论问题不感兴趣的人们,这就是为什么不阅读问题他们就会开始投票,如果您放一些代码,他们就会为您提供帮助。 (3认同)
  • 正如你告诉我的问题,tommarow 我会调查这个问题并尝试解决它。 (2认同)
  • 谢谢您的帮助!!我也想出了最后一个把戏!我必须将一些元素的宽度设置为:100%,然后用inline-block覆盖inline-flex,现在选项占据了整个长度,并且复选框和标签仍然保留在左侧。感谢一切!!!:)我也将确保包括代码 (2认同)
  • @ShawnSpencer - 您可以在 mat-select 标签上使用“multiple”属性...这是一个示例 https://stackblitz.com/edit/angular-g7vtuj-gk81ni?file=app/select-multiple-example.html (2认同)