我在组件中有一个具有预定义值path
的变量。
从Angular 6.0升级到6.1.7后,它显示为undefined
export class AppComponent implements OnInit {
path: string = '/';
constructor(public route: Router) {
console.log(this.path)
}
ngOnInit() {
this.route.events.subscribe((route)=>{
this.path = (route as any).url;
})
this.getFeatured();
}
}
导致模板错误的声明:
*ngIf="!path.includes('/reports') && !path.includes('/reviews') && !path.includes('/users')"
我不认为这是异步问题,因为它已将其登录到控制台:
答案 0 :(得分:3)
在我跟踪了您的代码之后,发生这种情况是因为仅订阅是针对cloudml_deploy("model", name = "keras_model")
而不是event
(当然,命名并不重要,只是语义)。
因此,在导航循环中触发的最后一个事件是route
,其中不包含键scrollEvent
,从而导致未定义。
我认为您需要通过执行以下操作来检查触发为url
类型的事件的类型:
NavigationEnd
修改:
这里是了解我确切含义的日志,最新事件(或者实际上可能是较大应用程序中的任何事件)可能不包含this.route.events.subscribe((event)=>{
if(event instanceof NavigationEnd){
this.path = (event as any).url;
}
})
属性: