角度* ngIf条件

时间:2019-12-17 10:15:44

标签: angular typescript

我正在使用这两个条件,问题是当实际上只应出现一个按钮时,两个按钮都同时出现。

即,如果= = "currentState == 'pause'"出现一个按钮,否则,如果出现= = "currentState == 'pause' && 'taskdate'> 'data.key.deadline'"另一个按钮...问题是两者都出现了而不仅仅是1。我认为这是因为currentState为true两者...我该如何解决?

html

 <div *dxTemplate="let data of 'cellTemplate'">
    <button type="button" data-toggle="dropdown" class="btn ClassPlay">
                <img style="width: 35px;" *ngIf="currentState=='pause' && taskdate <= data.key.deadline" src="./assets/play.svg">
                <img style="width: 35px;" *ngIf=" currentState=='pause' && taskdate > data.key.deadline" src="./assets/PlayRed.svg">
                <div *ngIf="currentState=='start'" src="./assets/playV.svg">
                  <img style="width: 38px;" *ngIf="currentRowIndex === data.rowIndex" src="./assets/playV.svg">
                  <img style="width: 38px;" *ngIf="currentRowIndex != data.rowIndex" src="./assets/PlayGrey.svg">
                </div>
     </button>
</div>

组件

taskdate = new Date();

Image

2 个答案:

答案 0 :(得分:2)

不要在第一项''上添加额外的taskdate <= data.key.line并添加额外的支票

尝试一下:

 <img style="width: 35px;" *ngIf="currentState == 'pause' && taskdate <= data.key.line" src="./assets/pl.svg">
 <img style="width: 35px;" *ngIf="currentState == 'pause' && taskdate > data.key.line" src="./assets/ap.svg">

Working Demo

答案 1 :(得分:1)

不需要多余的单引号。当您使用'taskdate'时,它将被评估为字符串。我相信taskdatedata?.key?.line是变量:

<img style="width: 35px;"     
    *ngIf="currentState == 'pause' && (taskDate <= data?.key?.line)" 
    src="./assets/pl.svg">
<img style="width: 35px;" 
    *ngIf="currentState == 'pause' && (taskdate > data?.key?.line)" 
    src="./assets/ap.svg">