Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Falha no lazyloading

Olá, Eu tenho o seguinte situação :

Tenho o arquivo de rotas que quero carregar preguiçosamente.

const routes: Routes = [

    { path: '',
      component:TemplatePaginaAdministracaoComponent,
      canActivate: [AdministracaoGuard]
    },
    {
          path: 'login',
          component: SiginComponent
     },
]

@NgModule({
    imports: [
         RouterModule.forChild(routes)
    ],
    exports: [ RouterModule ]

})
export class AdministracaoRoutingModule {
}

E tenho o arquivo de rotas principal :

const routes: Routes = [
    { path: '',
      pathMatch: 'full',
      redirectTo: 'servicos'
    },
    { path: 'servicos',
      component: TemplatePaginaServicoComponent,
     },
    { path: 'administracao',
      loadChildren: './administracao/administracao.module#AdministracaoModule'
    },

    { path: '**',
      component: S4NotFoundComponent
    }
]

@NgModule({
    imports: [
         RouterModule.forRoot(routes, {useHash: true})
    ],
    exports: [ RouterModule ]

})
export class AppRoutingModule {
}

Fiz todo o processo que aprendi na aula, porém quando acesso a rota de administração que é a rota que deve ser carregada de forma preguiçosa, sem que eu esteja logado, ele passa pelo administracaoGuard mas não consegue carregar a tela de login. na verdade, na URL do navegador tudo acontede de forma correta :

Tento acessar a rota de administração, a requisição passa pelo AdministracaoGuard que redireciona para o componente de login, mas a rota não é encontrada e sou redirecionado para o componente de pagina inexistente

Agora se eu já tiver logado, o lazyloading funciona, ele carrega o comopente de administração corretamente.

2 respostas

Olá, Lúcio.

Adiciona pathMatch: 'full', na primeira rota do seu módulo de administração também e vê se funciona.

Abraços!

solução!

Após eu fazer o split, eu estava tentando acessar a rota login diretamente, mas quando fazemos split, e as rotas que serão carregadas preguiçosamente tem como raiz a rota que foi carregada preguiçosamente. ex: a minha rota administracao sera carregada preguiçosamente, todas as rotas que eu definir no routung dela, começa apartir da propria administração.

concluindo ao invés de eu tentar acessar login diretamente, o correto é eu acessar administracao/login