首页 > 解决方案 > ngClass 布尔表达式获取模板解析错误

问题描述

我想检查一个时刻日期是否是当天。这不起作用,我不确定为什么会出现此错误。我认为错误是因为 Angular。

<div class="timeline-date"
      *ngFor="let date of dates"
      [ngClass]="{'current-date': date.isSame(new Date(), 'day') }">
  {{date.format("MMM Do")}}
</div>

错误:

未捕获的错误:模板解析错误:解析器错误:缺少预期)在 [{'current-date': date.isSame(new Date(), 'day') }] 中的第 34 列

标签: angulartypescriptmomentjsangular7

解决方案


这可能是该isSame方法的原因。声明一个布尔变量,这将是这个方法的结果:

isSame: boolean;
// ...
isDateSame = date.isSame(new Date(), 'day');

并使用布尔值ngClass

<div class="timeline-date"
    *ngFor="let date of dates"
    [ngClass]="current-date: isSame">
  {{date.format("MMM Do")}}
</div>

编辑:如何正确使用moment.js角度:

  1. 安装它npm

    npm install --save moment

  2. 将其导入.ts文件中:

    import * as moment from 'moment';

  3. 像这样使用它:

    let myMoment: moment.Moment = moment("someDate");


推荐阅读