我想在同一页面上多次引导一个Angular 4微应用程序 . 基本上,foreach类的实例'.angular-micro-app',引导一个新的app实例 .
据我所知,传统上这些是单个父App中的Angular组件 . 在我的情况下,这是不可能的,我需要在同一页面上的同一根级别应用程序(组件)的多个实例 . 对于AngularJS 1.x来说,这是相当微不足道的,但是对于Angular而言却相当令人沮丧 .
例:
index.html代码段:
<body>
<div class=“.angular-micro-app”></div>
…
<div class=“.angular-micro-app”></div> <!-- this element is NOT bootstrapping -->
</body>
app.component.ts:
import { Component } from '@angular/core';
@Component({
selector: '.angular-micro-app',
template: require('./app.component.html'),
})
export class AppComponent { }
app.module.ts:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
],
providers: [
],
bootstrap: [AppComponent],
})
export class AppModule { }
在主文件中,我正在做基本的平台引导程序:
platformBrowserDynamic().bootstrapModule(AppModule);
1 回答
这可以通过在NgModule ngDoBootstrap方法中手动引导根级别组件来完成 .
(注意,在Angular 5中,可能不再需要此方法,请参阅this Angular PR)
我们首先找到我们想要引导的所有根元素,并为它们提供唯一的ID . 然后,对于每个实例,使用新ID攻击组件工厂选择器并触发引导程序 .
现在,假设我们的RootComponent的选择器是'.angular-micro-app',这将按预期工作: