【发布时间】:2019-06-30 15:50:02
【问题描述】:
ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'width: 93.7598541666%'. Current value: 'width: 93.7604513889%'.
at viewDebugError (core.js:17871)
at expressionChangedAfterItHasBeenCheckedError (core.js:17859)
at checkBindingNoChanges (core.js:18059)
at checkNoChangesNodeInline (core.js:27637)
at checkNoChangesNode (core.js:27624)
at debugCheckNoChangesNode (core.js:28228)
at debugCheckDirectivesFn (core.js:28156)
at Object.eval [as updateDirectives] (AppComponent.html:101)
at Object.debugUpdateDirectives [as updateDirectives] (core.js:28145)
at checkNoChangesView (core.js:27523)
我收到上述错误,但代码仍在继续
<div [ngStyle]="{
'margin-left':task.getFrontMargin(dayStart, hourResolution)*100+'%',
'width':task.getWidthPercent(dayStart, hourResolution)*100+'%'
}"
class="flag" [ngClass]="task.type">
</div>
【问题讨论】:
-
什么是task.type?你在哪里设置?
-
task.getWidthPercent(dayStart, hourResolution)导致问题。它的值在变化检测周期内变化。这意味着taskdayStarthourResolution在您的代码中某处被更改。所以请分享您的完整 ts 和 html 代码。 -
是的,我在 getWidthPercent 调用的任务中有 getter,它每次都返回 new Date()。是这个问题吗?如何解决?
标签: angular