【问题标题】:*ngIf=item.activityStatus!=("Done") as angular2 conditional visibility*ngIf=item.activityStatus!=("Done") 作为 angular2 条件可见性
【发布时间】:2017-05-07 00:30:55
【问题描述】:

我想根据项目的值切换按钮的可见性

这是我的代码:

 <tbody>
              <tr *ngFor="let item of statusConfig | slice:0:9; let i = index;" >
                  <td class="col-md-1">
                    {{item.id}}
                  </td>
                  <td class="col-md-3">
                    {{item.activityName}}
                  </td>
                  <td class="col-md-2">
                    {{item.activityStatus}}
                  </td>
                  <td class="col-md-3">
                    {{item.activityDateEpoch | date: 'yyyy-MM-dd HH:mm:ss'}}
                  </td>
                  <td class="col-md-3">
                    <button *ngIf=item.activityStatus!=("Done") type="button" class="btn btn-primary" (click)="saveStatus(item.id, i)">Mark as done</button>
                  </td>

              </tr>
            </tbody>

为什么这是一个语法错误,我应该如何解决这个问题?

directive_normalizer.js:82 Uncaught Error: Template parse errors:
Unexpected closing tag "button" ("tyStatus!="Done" type="button" class="btn btn-primary" (click)="saveStatus(item.id, i)">Mark as done[ERROR ->]</button>
                  </td>

"): ReportComponent@45:145

activityStatus = "Done" for now

【问题讨论】:

  • 能否提供 item.activityStatus 的值和语法错误?

标签: html angular angular2-template angular2-directives


【解决方案1】:

我很震惊你在一行代码中犯了多少错误。 :-)

第一NgIf 指令接受string 作为表达式值,这意味着它必须具有以下形式:

*ngIf="expression here"

第二个"不能用两次,如果要在"中使用string,那么应该用单引号('

第三:不需要括号:("Done")

不管怎样,你的表达应该是这样的:

*ngIf="item.activityStatus != 'Done'"

您可以阅读有关NgIf 指令here 的更多信息。

【讨论】:

    【解决方案2】:

    应该是,

    *ngIf="(item.activityStatus!='Done')"
    

    【讨论】:

      猜你喜欢
      • 2016-11-24
      • 2017-08-20
      • 2017-04-20
      • 2018-03-13
      • 2017-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多