【问题标题】:How dynamically import component in Angular?如何在 Angular 中动态导入组件?
【发布时间】:2019-03-26 07:47:25
【问题描述】:

我正在开发一个由一个主项目、十几个子项目和十几个全局组件组成的 Angular 项目。该项目将部署在多个客户端。客户不会实际拥有所有子项目。有些是,有些只有 3-4 个。

我正在寻找一种方法来确保每个人都有相同的代码,可能会使用配置文件来管理细微之处。我现在对一个没有子项目的客户感到困惑。

这个组件被导入到我的app-routing.module.ts中,当然我有一个错误告诉我找不到子项目。我正在寻找一种进行有条件导入的方法,或者如果你知道的话可能还有另一种方法,我唯一的条件是让每个人的代码都相同。

app-routing.module.ts

import {NgModule} from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
import {AuthGuard} from './core/guards/auth.guard';

// Global components
import {HomeComponent} from './core/home/home.component';
import {LoginComponent} from './core/login/login.component';

// Sub projects
import {SubProject1Component} from '../../projects/sub1/sub1/src/app/sub1.component'; // <- Conditionally ignore this
import {SubProject2Component} from '../../projects/sub2/sub2/src/app/sub2.component'; // <- Conditionally ignore this
import {SubProject3Component} from '../../projects/sub3/sub3/src/app/sub3.component'; // <- Conditionally ignore this

const appRoutes: Routes = [
  { path: 'login', component: LoginComponent, canActivate: [AuthGuard] },
  { path: 'home', component: HomeComponent, canActivate: [AuthGuard], children: [
      { path: 'sub1', component: SubProject1Component },
      { path: 'sub2', component: SubProject2Component },
      { path: 'sub3', component: SubProject3Component },
    ]},
  { path: '', redirectTo: 'home', pathMatch: 'full'},
];

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

Angular CLI:7.0.7

角度:7.0.4

【问题讨论】:

    标签: angular import components


    【解决方案1】:

    你检查过这个solution吗?

    您还可以使用配置文件为不同的客户端加载不同的配置(组件)。

    【讨论】:

    • 很遗憾,这一步已经太高级了,甚至在管理加载之前,我必须先管理导入。例如,有一个客户没有子项目3,我有这个错误我想避免:ERROR in src/app/app-routing.module.ts(17,38): error TS2307: Cannot find module '../../projects/sub3/sub3/src/app/sub3.component'.
    猜你喜欢
    • 2020-03-08
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 2017-08-20
    • 2020-02-25
    • 1970-01-01
    • 2021-10-04
    • 2013-02-24
    相关资源
    最近更新 更多