Angular2 - 从Web服务获取的字符串插值的* ngIf

时间:2016-06-03 08:03:20

标签: angular

我必须显示两个互斥的按钮'MARK COMPLETED'和'COMPLETED'。如果任务状态为OPEN,则需要显示“MARK COMPLETED”,而如果任务状态已关闭,则需要显示“COMPLETED”按钮。

<div *ngFor="#task of tasks" class="demo-updates mdl-card mdl-shadow--2dp mdl-cell mdl-cell--4-col mdl-cell--4-col-tablet mdl-cell--12-col-desktop">
    <div class="mdl-card__title mdl-card--expand mdl-color--teal-300">
    <h2 class="mdl-card__title-text">{{task.taskname}}</h2>
    </div>
    <div class="mdl-card__supporting-text mdl-color-text--grey-600">
    {{task.taskdesc}}  {{task.taskstatus}}
    </div>
    <div class="mdl-card__actions mdl-card--border">                
                <a href="#" class="mdl-button mdl-js-button mdl-js-ripple-effect">{{task.assignedto}}</a>


    <a [routerLink]="['/AllTasks']" *ngIf="{{task.taskstatus}}='OPEN'" class="mdl-button mdl-js-button mdl-js-ripple-effect" (click)="onClickMark(task)">Mark Completed</a>
    <a [routerLink]="['/CompletedTasks']" *ngIf="{{task.taskstatus}}='CLOSED'" class="mdl-button mdl-js-button mdl-js-ripple-effect">Completed</a>


</div>    

我试过了*ngIf="{{task.taskstatus}}='OPEN'",但它没有用。有任何想法吗 ?

1 个答案:

答案 0 :(得分:47)

*已经向Angular表明它需要将值作为表达式处理。表达式中的{{}}无效。

改为使用:

*ngIf="task.taskstatus=='OPEN'"

同样,对于compairson ==而不是=(赋值)是必需的。