默认路由不起作用[Angular4]

时间:2018-08-10 02:47:48

标签: angular typescript angular4-router

我什么都累了,但只有这个项目会发生。我使用了相同的路由代码,但是默认路由不起作用。我需要修复代码还是需要修复其他地方?

此代码位于 app.moules.ts 中:

export const AppRoutes: Routes = [
    {
        path: '',
        redirectTo: '/login',
        pathMatch: 'full'
    }, {
        path: '',
        component: AdminLayoutComponent,
        children: [
            {
                path: 'main',
                component: MainComponent,
                data: {
                    breadcrumb: 'Main',
                    status: true
                }
            }, {
                path: 'userterminal',
                loadChildren: './userterminal/userterminal.module.ts#UserTerminalModule'
            }, {
                path: 'userslogin',
                loadChildren: './user-login/userlogin.module.ts#UserloginModule'
            }, {
                path: 'cameraconfig',
                loadChildren: './camera-config/camera- 
                config.module.ts#CameraConfigModule'
            }
        ]
    }, {
        path: '',
        component: AuthLayoutComponent,
        children: [
            {
                path: 'authentication',
                loadChildren: './authentication/authentication.module#AuthenticationModule'
            }, {
                path: 'error',
                loadChildren: './error/error.module#ErrorModule'
            }, {
                path: 'login',
                component: LoginComponent,
            }, {
                path: 'cameraLogin',
                component: CamLoginComponent
            }
        ]
    }, {
        path: '**',
        redirectTo: 'error/404'
    }
];

1 个答案:

答案 0 :(得分:0)

在“路线”中找到的第一条空路线将重定向到/login

使用children时,意味着您的父组件拥有自己的router-outlet

我假设您的LoginComponent位于路由的基础,因此path也应位于路由的根。像这样:

export const AppRoutes: Routes = [
  {
    path: '',
    redirectTo: '/login',
    pathMatch: 'full'
  },
  {
    path: 'main',
    component: AdminLayoutComponent,
    children: [
      {
        path: '',
        component: MainComponent,
        data: {
          breadcrumb: 'Main',
          status: true
        }
      },
      {
        path: 'userterminal',
        loadChildren: './userterminal/userterminal.module.ts#UserTerminalModule'
      }
    ]
  },
  {
    path: 'login',
    component: LoginComponent
  }
];

使用这样的结构,当您使用重定向时,它将找到路径,因为它位于根目录。

使用,您可以成功登录后导航到main。 请记住,如果您正在使用子代,则父组件示例AdminLayoutComponent必须具有一个router-outlet才能将其子代装入内部。