我有一个Web应用程序,它在各个页面中引发ExpressionChangedAfterItHasBeenCheckedError
错误。这更像是警告而不是错误,并且Web应用程序运行良好。
当前,尚无固定代码以消除此错误的选项,我需要进行业力测试来忽略它。
当我进行业力测试时,我得到了:
Failed: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.
有什么办法可以忽略这个特定的错误?
答案 0 :(得分:0)
我遇到了同样的问题。通常,即使我在运行应用程序的控制台中遇到此错误,它也不会使Karma / Jasmine测试失败(在这种情况下,我实际上并没有在应用程序中得到控制台错误,仅在Karma中)。
我不确定这是否是您的问题,但我的工作与我使用ngStyle
的方式有关。不知道为什么为什么解决了这个问题,但我想我会在这里添加它给其他任何寻求答案的人。
执行此操作时出现错误:
模板
<div [ngStyle]="{ 'width.px': (!checked ? widthValue : 0) }">Blah</div>
正在计算widthValue
的{{1}}。
我也尝试过这种格式(这也给了我错误):
AfterViewInit
当我将逻辑切换到组件并刚刚传入结果样式对象时,就很好了。
模板
<div [ngStyle]="{ 'width': (!checked ? widthValue : 0) + 'px' }">Blah</div>
组件
<div [ngStyle]="labelWidth(checked)">Blah</div>