5

我想从一个变量中添加类名,但这取决于 Angular 9 中的另一个变量。

这是我的打字稿代码

export class InputComponent implements OnInit {
  @Input() inputBlockClass = 'col-12 d-flex px-0';
  @Input() inputBlockExtraClass = 'col-md-9';
  @Input() showLabel = true;

  // ...
}

这是我的 HTML 代码:

<div [class]="inputBlockClass" [class.inputBlockExtraClass]="showLabel">

我也试过这个,但它不起作用:

<div [class]="inputBlockClass" [ngClass]="{inputBlockExtraClass: showLabel}">

两种解决方案都给出了这个结果:

<div _ngcontent-sxj-c111="" class="col-12 d-flex px-0 inputBlockExtraClass">

但我想要这个:

<div _ngcontent-sxj-c111="" class="col-12 d-flex px-0 col-md-9">

如何从变量中添加类名取决于布尔变量?

4

2 回答 2

5

你可以这样做:

<div [class]="inputBlockClass" [ngClass]="showLabel ? inputBlockExtraClass : ''">

或者你可以摆脱[class]

<div [ngClass]="[inputBlockClass, showLabel ? inputBlockExtraClass : '']">

堆栈闪电战演示

于 2020-03-28T19:32:44.430 回答
4

你试过这样做吗? https://stackblitz.com/edit/angular-ngclass-nbleik

 <div [class]="inputBlockClass" [ngClass]="showLabel?inputBlockExtraClass:''">>
      sometext
 </div>
于 2020-03-28T19:31:16.957 回答