代码之家  ›  专栏  ›  技术社区  ›  Donovant

如何将角度应用程序用于其他角度应用程序的子路径?

  •  2
  • Donovant  · 技术社区  · 6 年前

    我想使用延迟加载(当用户点击某个特定路线时)将一个角度应用程序加载到另一个角度应用程序中。 我应该编译第一个应用程序以用于第二个应用程序还是什么?

    将应用程序的路由模块嵌套到角度应用程序中:

    const upgradeRoutes: Routes = [
      {
        path: '/upgrade',
        component: HelloComponent
      },
      { path: '', redirectTo: '/upgrade', pathMatch: 'full' }
    ];
    
    @NgModule({
      imports: [
        RouterModule.forChild(upgradeRoutes)
      ],
      exports: [
        RouterModule
      ],
      declarations: []
    })
    export class UpgradeRoutingModule { }
    

    应用程序的模块以嵌套到角度应用程序中

    @NgModule({
      declarations: [
        AppComponent,
        HelloComponent
      ],
      imports: [
        CommonModule,
        UpgradeRoutingModule
      ],
      exports: [
        UpgradeModule
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class UpgradeModule { }
    

    在应用程序模块中,我想使用(延迟加载)子路由中描述的第一个应用程序模块:

    import {UpgradeModule} from '../../node_modules/module-upgrade/src/app/app.module'  
    
    @NgModule({
       declarations: [
         ...
       ],
       import: [ UpgradeModule ]
    });
    

    1)我想知道这是否正确,和/或有其他方法可以做到。

    2)另一个问题是 儿童应用程序 使用角度6,而第二个/主要的使用角度4。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Guerric P    6 年前

    或者:

    • 不要引导您的子应用程序并将其用作子模块(这要求您将主应用程序升级到Angular 6,这至少需要重构您的RXJS操作员调用,可能还需要一些其他小功能)。
    • 或者只需配置Web服务器在特定的URL上为您的子应用程序提供服务。在这种情况下,您的两个应用程序将无法共享任何状态(全局命名空间、cookie和本地存储除外),或者 角组件/服务/指令/管道