使用ngclass结果中的方法表达式在检查后发生了变化

时间:2017-06-19 09:17:20

标签: angular

我正在使用在ngfor中循环的ngclass中的方法。 循环时,方法返回值始终发生变化。

但是我收到了像

这样的错误
  

错误错误:ExpressionChangedAfterItHasBeenCheckedError:Expression   检查后发生了变化。之前的价值:' background_pink'。   当前价值:' background_blue'。

代码就像这样

component.ts

getRandomColor() {
    const changedColor = _.sample(this.colors);
    return changedColor;
}

component.html

<a href="https://www.leelag.com/tag/laravel" *ngFor="let tag of bookDetails.tags">
<label [ngClass]="['label', 'well', 'well-sm', getRandomColor()]">{{ tag.name }}</label></a>

循环播放时始终显示上述错误。 怎么解决这个问题?

1 个答案:

答案 0 :(得分:1)

您似乎正在更新循环代码中的变量/值。

* ngFor 在逻辑循环迭代时无法理解更新后的值。