angular - ExpressionChangedAfterItHasBeenCheckedError 带有 ngClass 并且没有子组件
问题描述
我正在尝试使用自定义逻辑将活动类应用于我的路由,routerLinkActive
但由于某种原因无法正常工作(可能是我的父路由和子路由是动态的)。这是代码:
<ul class="navbar-nav">
<li class="nav-item eds-service"
*ngFor="let service of services"
[routerLink]="['', _dataService.flavor, service]"
[ngClass]="{'active': _urlService.getCurrentService() === service}"
(click)="changeService(service)">
{{ service | readableName | titlecase }}
</li>
</ul>
我的路由文件如下所示:
{ path: ':flavor', component: ComparePageComponent },
{ path: ':flavor/:service', component: ComparePageComponent }
当我加载页面时,我收到以下错误:
ServicesComponent.html:10 ERROR 错误:ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后已更改。以前的值:“活动:假”。当前值:“活动:真”。
我尝试使用AfterViewInit
, AfterViewChecked
,但无济于事。
我哪里错了?
解决方案
尝试这个:
public constructor(private changeDetector: ChangeDetectorRef) {}
public ngAfterViewInit(): void {
this.changeDetector.detectChanges();
}
推荐阅读
- javascript - AdminBro 中文件上传的自定义提供程序问题
- excel - MS Excel 宏:根据单元格值插入 x 行
- javascript - 随机生成器工具中的重复项
- flutter - Flutter:我怎样才能将我最后的最后一个 ..shuffle 订单保持在新的状态?
- javascript - 通过数组nodejs映射
- java - 如何让 JTextField 在 SQLite Select 语句中工作?
- r - Mac OS Big Sur R 编译错误:ld: framework not found CoreFoundation
- pythoninterpreter - 重装的替代品
- amazon-web-services - (AccessDeniedException) 调用 ListFunctions 时
- python - TypeError 的问题:无法使用非整数键按位置索引进行索引