2

angular 8でルーターと遅延読み込みを使用しようとしています。以前はAngular 7で正常に使用していました。
次のようないくつかの基本的なルートがあります。

/home
/auth
/auth/login
/auth/signUp

にリダイレクトし、他のすべて/authを にリダイレクトしたいと思います。 これを達成するために、私の見た目は次のようになります。 /auth/login/home
app-routing.module.ts

const routes: Routes = [
  {
    path: '',
    redirectTo: '/home',
    pathMatch: 'full'
  },
  {
    path: 'auth',
    loadChildren: () => import('./modules/auth/auth.module').then(m => m.AuthModule)
  },
  {
    path: 'home',
    loadChildren: () => import('./modules/home/home.module').then(m => m.HomeModule)
  },
  {
    path: '**',
    redirectTo: '/home',
    pathMatch: 'full'
  }
];

そして、私は次のようにauth-routing.module.ts見えます:

const routes: Routes = [
  {
    path: '',
    redirectTo: '/auth/login',
    pathMatch: 'full'
  },
  {
    path: 'login',
    component: LoginComponent
  },
  {
    path: 'signUp',
    component: LogoutComponent
  }
];

問題は、常に認証ページにリダイレクトされ、他のリダイレクトが無視されることです。およびパスもルート レベルで使用できますが、これは奇妙ですが、さらに独特な which をプレフィックスとして付けた場合にも機能し/loginます。 /signUp/auth/login

そのため、何らかの理由でルートが 2 回存在するように見えます。
また、パスの前にプレフィックスを付けると、auth-routing.module.ts突然auth/に直接送信できるようになります/auth/auth/login

アイビーと遅延読み込みを機能させるために、Angular 8 の必要なすべての機能を有効にしました。私が定義した他のルートと遅延モジュールは機能しています。

4

2 に答える 2

1

AuthModuleimport 、 and HomeModuleonlyがあることを確認してくださいapp-routing.module.ts(遅延読み込みとして)。これらのモジュールがapp.module.ts通常の方法 (遅延読み込みなし) で内部にインポートされていないことを確認してください。

于 2020-08-10T10:57:20.143 に答える