angular material 条件字幕

angular material conditional subtitle

我有以下内容:

<div class="wrapper">
  <mat-card style="margin:1em; width: 250px; border: 1px ridge white">
    <mat-card-header>
      <div mat-card-avatar class="verify-header-image"></div>
      <mat-card-title>{{name}}</mat-card-title>
      <mat-card-subtitle [hidden]="shouldHideSub">Linked</mat-card-subtitle>
      <mat-card-subtitle [hidden]="!shouldHideSub">Unlinked</mat-card-subtitle>
    </mat-card-header>
    <img mat-card-image src={{picture}} alt="Portrait of the character">
    <mat-card-content>
    </mat-card-content>
    <mat-card-actions>
      <div class="button-row">
        <button mat-raised-button color="primary">Details</button>
      </div>
    </mat-card-actions>
  </mat-card>
</div>

我想有条件地显示字幕,但出于某种原因我不能像上面那样使用隐藏,ng-if 似乎也不起作用,我也不能使用 ngClass 来指定 class用于垫卡头像图片

这是不可能的还是我遗漏了什么?

如果只想显示姓名:

<mat-card-subtitle>{{shouldHideSub?'Linked':'Unlinked'}}</mat-card-subtitle>

[hidden] 是 Angular 在大多数 DOM 元素(但不是全部)上查找的内部属性。自定义组件(即自定义 DOM 元素)不会包含此逻辑。

快速解决方法是将属性添加为全局 CSS 规则:

[hidden] {
    display: none !important;
}

...但是 !important 标志可以被视为粗暴而不是好的做法。除此之外,其他视图指令如 fxFlex 可以覆盖 [hidden] 显示样式。通常最好使用 *ngIf 属性,或者在本例中,使用 *ngSwitch 规则。