簡體   English   中英

如何在 Angular 中動態導入組件?

[英]How dynamically import component in 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 {}

角 CLI:7.0.7

角度:7.0.4

你檢查過這個解決方案嗎?

您還可以使用配置文件為不同的客戶端加載不同的配置(組件)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM