Angular Могу ли я использовать один и тот же модуль для двух разных путей? - PullRequest
0 голосов
/ 22 сентября 2019

Привет, ребята. Я выполняю ленивую загрузку в angular 8., но застрял в середине для входа и выхода из системы. Я использовал один и тот же модуль, как показано ниже.

    const myroutes : Routes = [        
        {path : 'login',loadChildren:()=>import('./login/login.module').then(m=>m.LoginModule)},       
        {path : 'logout',loadChildren:()=>import('./login/login.module').then(m=>m.LoginModule)},
        {path : 'contact',loadChildren:()=>import('./contact/contact.module').then(m=>m.ContactModule)},
        {path : 'home',loadChildren : ()=> import('./home/home.module').then(m=>m.HomeModule)},
     ]

и в login.module.Используется как шаблон

const myroutes : Routes = [
  {path : '',component : LoginComponent},
  {path : 'logout',component : LogoutComponent}
]

, который имеет все ссылки, как показано ниже

<nav class="navbar navbar-expand-sm bg-light">
        <ul class="navbar-nav">
            <li class="nav-item">
                    <a class="nav-link" routerLink="home">Home</a>
            </li> 
            <li class="nav-item">
                    <a class="nav-link" routerLink="contact">Contact</a>
            </li>
            <li class="nav-item">
                    <a class="nav-link" routerLink="login">Login</a>
            </li>
            <li class="nav-item">
                        <a class="nav-link" routerLink="logout">logout</a>
            </li>
        </ul>
      </nav>
<router-outlet></router-outlet>

, но всякий раз, когда я нажимаю на ссылку выхода из системы, в LogoutComponent.ts всегда вызывается компонент входа в систему.

Кто-нибудь подскажет, что происходит?

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

Ваш компонент выхода из системы должен быть / login / logout вместо / logout, который загружает модуль входа в систему, и нет необходимости загружать модуль входа в систему дважды, поскольку выход из системы является дочерним по отношению к маршруту входа в систему

маршрут выхода из системы удален изосновной маршрут

 const myroutes : Routes = [        
        {path : 'login',loadChildren:()=>import('./login/login.module').then(m=>m.LoginModule)},       
        {path : 'contact',loadChildren:()=>import('./contact/contact.module').then(m=>m.ContactModule)},
        {path : 'home',loadChildren : ()=> import('./home/home.module').then(m=>m.HomeModule)},
     ]

изменить ссылку маршрутизатора на routerLink = "вход / выход"

-

<nav class="navbar navbar-expand-sm bg-light">
        <ul class="navbar-nav">
            <li class="nav-item">
                    <a class="nav-link" routerLink="home">Home</a>
            </li> 
            <li class="nav-item">
                    <a class="nav-link" routerLink="contact">Contact</a>
            </li>
            <li class="nav-item">
                    <a class="nav-link" routerLink="login">Login</a>
            </li>
            <li class="nav-item">
                        <a class="nav-link" routerLink="login/logout">logout</a>
            </li>
        </ul>

Я добавляюURL-адрес stackblitz для вашей справки

https://stackblitz.com/edit/angular-ea742m

0 голосов
/ 22 сентября 2019

правильный путь к компоненту выхода из системы - это объединение входа в систему и выхода из нее, поэтому:

/ login / logout

Таким образом, ваш routerLink становится таким:

routerLink ="выход / выход"

Надеюсь, я помог.

...