我正在尝试使用@ angular / elements模块构建一个角度应用程序来构建Web元素。
根项目将仅用于测试标准独立应用程序中的那些组件。
我创建了一个名为“ elements”的项目,该项目的唯一目的是创建组件并将其作为网络元素分发,到目前为止效果还不错。
我现在正试图延迟加载那些元素。我只在真正使用组件时才需要相关的捆绑软件文件。
这是我的app.module.ts,它定义了Web元素:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, Injector, DoBootstrap, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { createCustomElement } from '@angular/elements';
import { CfLabelComponent } from './cf-label/cf-label.component';
import { CfAdslComponent } from './cf-adsl/cf-adsl.component';
@NgModule({
declarations: [],
imports: [
BrowserModule,
AppRoutingModule
],
providers: [],
bootstrap: [],
})
export class AppModule implements DoBootstrap {
constructor(private injector: Injector) { }
ngDoBootstrap() {
customElements.define('cf-label', createCustomElement(CfLabelComponent, { injector: this.injector }));
customElements.define('cf-adsl', createCustomElement(CfAdslComponent, { injector: this.injector }));
}
}
我知道Angular需要一些引导程序。 我没有经典的app.component.ts,因为我一天结束时都不需要它。 前面的代码可以正常工作,但是可以将main.js内的组件cf-label和cf-adsl引导到这是可以理解的,但这不是我想要的。 您能否提出解决此问题的方法?