如何不引导Angular Web元素进行延迟加载

时间:2019-11-12 09:30:03

标签: angular8 angular-elements angular-ivy

我正在尝试使用@ 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引导到这是可以理解的,但这不是我想要的。 您能否提出解决此问题的方法?

0 个答案:

没有答案