Angular项目中核心模块只加载一次的实现

核心模块CoreModule在整个系统中只加载一次,如何实现?

使用SkipSelf注解避免重复注入。

使用Optional注解 让SkipSelf作为可选,在第一次注入时候成功注入。

import { NgModule,SkipSelf,Optional} from '@angular/core';
import { CommonModule } from '@angular/common';

@NgModule({
  imports: [
    CommonModule
  ],
  declarations: []
})
export class CoreModule { 
  constructor(@Optional() @SkipSelf() parent: CoreModule){ //加上@SkipSelf()注解
    if(parent){
      throw new Error ('模块已经存在,不能再次加载');
    }
  }
}

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:https://www.cnblogs.com/starof/p/9069181.html 有问题欢迎与我讨论,共同进步。

猜你喜欢

转载自www.cnblogs.com/starof/p/9069181.html