Angular8路由器不';某些组件不起作用-返回索引
我的角形路由器有些问题。 我有一个包含几个组件的项目: 现在我可以从app.component路由到login.component,也可以从那里路由到overview.component。 很快,这3个组件之间的路由工作 但现在我添加了logbook.component,并希望路由到此,它总是返回到app.component 无论我是直接将其放入URL路径还是使用Angular8路由器不';某些组件不起作用-返回索引,angular,typescript,routing,frontend,router,Angular,Typescript,Routing,Frontend,Router,我的角形路由器有些问题。 我有一个包含几个组件的项目: 现在我可以从app.component路由到login.component,也可以从那里路由到overview.component。 很快,这3个组件之间的路由工作 但现在我添加了logbook.component,并希望路由到此,它总是返回到app.component 无论我是直接将其放入URL路径还是使用router.navigate(['logbook')在单击方法中。 url显示应用程序试图路由到/logbook,但是我又看到了ap
router.navigate(['logbook')代码>在单击方法中。
url显示应用程序试图路由到/logbook
,但是我又看到了app.component
这是我的app-routing.module.ts:
const routes:routes=[
{
路径:“”,
组件:AppComponent
},
{
路径:“登录”,
组件:LoginComponent
},
{
路径:“概述”,
组件:概览组件
},
{
路径:'日志',
组件:日志组件
}
];
@NGD模块({
导入:[RouterModule.forRoot(路由)],
导出:[路由模块]
})
导出类AppRoutingModule{}
我认为您的路由工作正常,但是您的app.component.html
用“resetScreen
”类覆盖了屏幕。请记住,app.component.html
是根组件,并且始终显示
显示overview.component.html
的唯一原因是它在路由时用“overview
”类覆盖了app.component.html
您可能希望有条件地显示“resetScreen
”元素
app.component.html
:
<div *ngIf="!isLoggedIn" class="resetScreen">
<div class="btn_reset" (click)="showLoginScreen()"></div>
<div class="btn_start" (click)="showLoginScreen()"></div>
</div>
<router-outlet></router-outlet>
或者像其他组件一样,将html元素从app.component.ts
移动到它自己的路由组件中。您是否尝试过调试logbook.component.ts?函数checkLogin
是否返回正确的值?如果您确定这不是ngOnInit
重定向调用问题,那么您必须向我们提供您的Html代码,特别是导航部分。如果您不确定,请尝试调试它(即使是简单的console.log()
也可以)。Yes返回正确的值,当id存在时为true这将是OnInit重定向问题?文件位于:you's welcome!我和你一样困惑,直到我检查了浏览器中的html。
export class AppComponent implements OnInit {
constructor(public router: Router, private loginService: LoginService) { }
ngOnInit() {
if(this.isLoggedIn) {
this.router.navigate(['overview']);
}
}
showLoginScreen(): void {
this.router.navigate(['login']);
}
get isLoggedIn(): boolean {
return this.loginService.checkLogin();
}
}