【问题标题】:Mat-option values based on a condition基于条件的 Mat-option 值
【发布时间】:2020-08-27 05:43:07
【问题描述】:

我只是想在 mat-select 中填充值。

 <mat-select id="selproj" class="proj-selector" >
      <mat-option *ngFor="let project of projects " [value]="project.projId">
        {{project.projName}}
      </mat-option>
 </mat-select>

项目数组是这样的

0: {projStatus: "Y", projName: "Test-1", projtId: 3}
1: {projStatus: "N", projName: "Test-2", projId: 9}

现在我要做的是,如果 projstatus 是 no ,我必须在选择框中将 mat-option 值显示为 projname-notactive。但是如果项目状态是 Y,我应该只显示项目名称。我不能在 mat-option 中同时使用 ngif 和 ngfor。我怎样才能做到这一点?

【问题讨论】:

    标签: angular angular-material


    【解决方案1】:

    您可以将ng-container 用于*ngFor 并在mat-option 上使用*ngIf

     <mat-select id="selproj" class="proj-selector" >
        <ng-container *ngFor="let project of projects ">
          <mat-option *ngIf="condition" [value]="project.projId">
            {{project.projName}}
          </mat-option>
        </ng-container>
     </mat-select>
    

    用您需要的任何条件替换condition。

    希望对你有帮助!

    编辑:

    在评论中说明的条件下,您无需使用ng-container。你可以在 span 中使用*ngIf

    <mat-option [value]="project.projId">
      {{project.projName}} <span *ngIf="project.projStatus=='N'">Not-Active</span>
    </mat-option>
    

    如果您只需要mat-option 中的文字...

    <mat-option [value]="project.projId">
      {{project.projName + (project.projStatus=='N' ? 'Not-Active' : '')}}
    </mat-option>
    

    【讨论】:

    • 抱歉,我更新了我的问题。我有两个条件。 {{project.projName}}+"Not-Active" 如果状态为 Y,则只有项目名称。我怎么能这么写。
    • 立即检查编辑。
    • 为您添加了另一个选项
    • 您可能需要使用括号.. 我会编辑答案
    • 好的。感谢您的帮助和支持。
    猜你喜欢
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 2011-01-22
    • 2019-09-21
    • 1970-01-01
    • 2021-07-04
    相关资源
    最近更新 更多