Angular router url返回斜杠
发布时间:2020-12-17 17:33:30 所属栏目:安全 来源:网络整理
导读:我试图通过使用路由器来获取当前的路由器路径,但是当我执行console.log(this.router.url)时,它返回“/”,尽管我在“/ login”上. 但是当我安慰整个this.router对象时,有一个属性url,其值为“/ login”. 这是来自app.component.ts的代码 export class AppComp
我试图通过使用路由器来获取当前的路由器路径,但是当我执行console.log(this.router.url)时,它返回“/”,尽管我在“/ login”上.
但是当我安慰整个this.router对象时,有一个属性url,其值为“/ login”. 这是来自app.component.ts的代码 export class AppComponent implements OnInit{ constructor(private router: Router) {} ngOnInit(){ console.log(this.router); } } app.module.routing.ts import {NgModule} from '@angular/core'; import {PreloadAllModules,RouterModule,Routes} from '@angular/router'; import {NotFoundComponent} from './not-found/not-found.component'; import {AuthGuard} from './auth/auth-guard.service'; const appRoutes: Routes = [ { path: '',loadChildren: './first/first.module#FirstModule'},{ path: 'login',loadChildren: './login/login.module#LoginModule'},{ path: '404',component: NotFoundComponent,canActivate: [AuthGuard] },{ path: '**',redirectTo: '/404'} ]; @NgModule({ imports: [RouterModule.forRoot(appRoutes,{preloadingStrategy: PreloadAllModules})],exports: [RouterModule] }) export class AppModuleRouting {} 和FirstModule路由: import {NgModule} from '@angular/core'; import {RouterModule,Routes} from '@angular/router'; import {FirstComponent} from './first.component'; import {AuthGuard} from '../auth/auth-guard.service'; const firstRoutes: Routes = [ { path: '',component: FirstComponent,canActivate: [AuthGuard],children:[ { path: '',loadChildren: './content-container/container.module#ContainerModule' } ]} ]; @NgModule({ imports: [RouterModule.forChild(firstRoutes)],exports: [RouterModule] }) export class FirstRoutes {} 解决方法
我有同样的问题. router.url返回斜杠,因为当ngOnInit在主应用程序组件上运行时,路由是根.这样做我得到了url的正确值.
this.router.events .pipe( filter(e => e instanceof NavigationEnd) ) .subscribe( (navEnd:NavigationEnd) => { console.log(navEnd.urlAfterRedirects); }); 希望有所帮助.但这并不适用于Angular Universal ……但仍然试图解决这个问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |