首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 11 -如何隔离路由

Angular 11 -如何隔离路由
EN

Stack Overflow用户
提问于 2021-01-04 21:59:11
回答 1查看 52关注 0票数 0

在缺乏更好的标题的情况下,这是一个用例:拥有:

代码语言:javascript
复制
App-module/routing/Component
Userhandler-module/routing/component
Login-component
NewUser-component

预期:调用http://localhost/userhandler应重定向到:http://localhost/userhandler/login并在outlet: userhandling处加载LoginComponent

实际:重定向到http://localhost/userhandler,并在主服务器上重新加载UserHandlerComponent

App-component.html:

代码语言:javascript
复制
<div style="text-align:center"class="container">
  <h1>
    Welcome {{title}}!
  </h1>
<router-outlet></router-outlet>

App-module:

代码语言:javascript
复制
...
import { AppRoutingModule } from './app-routing.module';
@NgModule({
 declarations: [
 ...
 ],
 imports: [
 AppRoutingModule,
 ... 
 ],

App-routing.module:

代码语言:javascript
复制
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { UserHandlerComponent } from "./user-handler/user-handler.component";
//import {UserHandlerModule  } from "./user-handler/user-handler.module";
const routes: Routes = [
  {path: '', redirectTo: '/userhandler', pathMatch: 'full'},
  {path: 'userhandler', component: UserHandlerComponent, loadChildren: () => import('./user-handler/user-handler.module').then(m => m.UserHandlerModule)},
];

@NgModule({
  imports: [RouterModule.forRoot(routes/*, {useHash: true}*/)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

user-handler.module:

代码语言:javascript
复制
import { NgModule } from '@angular/core';
import {UserHandlerComponent  } from "./user-handler.component";
import { UserHandlerRoutingModule} from "./user-handler-routing.module";
import { CommonModule } from '@angular/common';


@NgModule({
  declarations: [UserHandlerComponent],
  imports: [CommonModule, UserHandlerRoutingModule],
  exports: [UserHandlerComponent],
})
export class UserHandlerModule { }

user-handler-routing.module:

代码语言:javascript
复制
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LoginComponent} from "../login/login.component";
import { NewAccountComponent } from "../new-account/new-account.component";


const routes: Routes = [
  
  { path: '', redirectTo: '/userhandler/login', pathMatch: 'full' },
  { path: 'login', component: LoginComponent, outlet: 'userhandling', pathMatch: 'prefix' },
  { path: 'new', component: NewAccountComponent, outlet: 'userhandling' },
  
];


@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class UserHandlerRoutingModule {}

user-handler.component.html:

代码语言:javascript
复制
div class="top">
    <mat-grid-list cols="2" rowheight="20px">
        <mat-grid-tile cols="1">
            
        </mat-grid-tile>
        <div class="logininfo">
        <mat-grid-tile cols="2">
            <router-outlet name="userhandling"></router-outlet>
        </mat-grid-tile>
        </div>
    </mat-grid-list>
</div>

所有显示的代码片段都是可读性的。

如何在保持路由隔离并由响应模块处理的情况下堆叠路由?

EN

回答 1

Stack Overflow用户

发布于 2021-01-28 00:37:50

更新,

好吧,为了回答我自己的问题,我需要生成一个新模块并处理该模块中的所有路由。因此,例如,模块user-handler-module有一个user-handler- routing - module,它处理用户处理程序的所有路由(登录、身份验证、重定向等)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65563915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档