angular - 如何路由到不同模块中的组件?

标签 angular

CharacterComponent 与 MenuModule 位于不同的 Module 中。我不知道路由到不同模块中的组件的正确方法。我希望能够切换 <router-outlet></router-outlet> 的目标到不同模块中的组件。据我所知,这是行不通的。

menu.module.ts

    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    import { FormsModule } from '@angular/forms';
    import { HttpClientModule } from '@angular/common/http';
    import { RouterModule } from '@angular/router';

    import { MenuComponent } from './menu.component';
    import { CharacterComponent } from '../character/character.component';

    @NgModule({
      declarations: [
        MenuComponent,
        CharacterComponent
      ],
      imports: [
        BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),
        HttpClientModule,
        FormsModule,
        RouterModule.forRoot([
          { path: '', component: CharacterComponent, pathMatch: 'full' }
       ])
      ],
      providers: [],
      bootstrap: [MenuComponent]
    })
    export class MenuModule { }

最佳答案

这是一个基本示例,但请确保将 AppRoutingModule 导入 AppModule(未显示)并将 LoginRoutingModule 导入 LoginModule(未显示)。否则它不会工作。还要注意每个路由模块中的 forRoot 和 forChild 方法。在这种情况下,如果用户转到 localhost:4200,它将重定向到 localhost:4200/start 并加载 LoginComponent。如果您有任何问题,请告诉我。

** AppRoutingModule **

const routes: Routes = [
  {
    path: '',
    redirectTo: 'start',
    pathMatch: 'full'
  },
  {
    path: 'start',
    loadChildren: 'app/modules/routes/login/login.module#LoginModule'
  }
];

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

** 登录路由模块 **

const routes: Routes = [
  {
    path: '',
    component: LoginComponent,
    redirectTo: 'login'
  }
]

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

关于angular - 如何路由到不同模块中的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52236423/

相关文章:

javascript - 如何使用 Angular 2 更改按钮单击时输入标签的禁用属性

Angular 2 @Input 数字问题

Angular2 无法绑定(bind)到 DIRECTIVE,因为它不是元素的已知属性

angular - 在 Angular 4 中保存重定向 URL 以防止身份验证拒绝

angular - HTTP 错误 502.5 - ANCM 进程外启动失败

Angular:从 Spotify 请求访问 token 时出现 HTTP post 请求错误 "grant_type parameter is missing"

Angular 多重拖放 (ng2-dragula)

angular - 在 Angular 5 应用程序中渲染 PDF

javascript - 用于文件上传的 Angular2 服务器端监听器

javascript - Angular http 模块 - 发布标题