在Angular中,我可以为两个不同的路径使用相同的模块吗?
我在Angular 8中实现了延迟加载,但在中间被卡住了。对于登录和注销,我使用了如下相同的模块在Angular中,我可以为两个不同的路径使用相同的模块吗?,angular,angular-routing,Angular,Angular Routing,我在Angular 8中实现了延迟加载,但在中间被卡住了。对于登录和注销,我使用了如下相同的模块 const myroutes : Routes = [ {path : 'login',loadChildren:()=>import('./login/login.module').then(m=>m.LoginModule)}, {path : 'logout',loadChildren:()=>import
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.ts中使用
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总是调用login Component
可能发生了什么?注销组件的正确路径是登录和注销的连接,因此:
/login/logout
因此,您的routerLink如下所示:
routerLink="login/logout"
您的注销组件应该是/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=“登录/注销” -
-
到注销组件的路径是/logout/logout或/login/logout。Not/logout,加载登录模块,然后显示此模块的空路由组件,即登录组件。
<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>