在Angular 8中,可以使用提供者来延迟加载非可路由功能模块。下面是一个解决方法,包含了代码示例:
import { Injectable } from '@angular/core';
@Injectable()
export class MyService {
constructor() { }
// 添加你的服务逻辑
}
MyService
并将其添加到providers
数组中。import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { MyService } from './my-service'; // 导入MyService
@NgModule({
imports: [BrowserModule],
providers: [MyService], // 添加MyService到providers数组中
bootstrap: [AppComponent]
})
export class AppModule { }
MyService
来延迟加载其他模块。import { Component } from '@angular/core';
import { MyService } from './my-service'; // 导入MyService
@Component({
selector: 'app-root',
template: `
`
})
export class AppComponent {
constructor(private myService: MyService) { }
loadLazyModule() {
import('./lazy.module').then((module) => {
// 使用提供者来延迟加载模块
this.myService.doSomething();
// 加载延迟模块
const lazyModule = module['LazyModule'];
return lazyModule;
});
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { LazyComponent } from './lazy.component';
@NgModule({
imports: [CommonModule],
declarations: [LazyComponent],
exports: [LazyComponent]
})
export class LazyModule { }
使用上述步骤,你可以通过使用提供者来延迟加载非可路由功能模块。在需要加载模块的地方,使用提供者来加载模块并使用其中的服务。