Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angular 5,将配置数据传递给导入的子模块大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的库中有一个主模块,我可以使用forRoot调用并传递一些配置数据(如此处所见)

export const MODULE_OPTIONS = new InjectionToken<ModuLeoptions>('MODULE_OPTIONS');

@NgModule({
  imports: [
    MySubModule.forRoot(//needs access to options)
  ]
})
export class Mymodule {
  static forRoot(options: ModuLeoptions = {}): ModuleWithProviders {
    return {
      ngModule: Mymodule,providers: [
        {
          provide: MODULE_OPTIONS,useValue: options
        }
        ]
    }
    }
}

当我的主模块“Mymodule”导入应用程序/模块时,我的子模块现在还需要访问我从外部提供的选项.

如何将Mymodule.forRoot中提供的ModuLeoptions传递给MySubModule?

解决方法

找不到任何正式的方法,所以我找到了一种方法,但它是一种解决方法.

您可以在Mymodule.forRoot函数中@L_284_1@mySubModule.forRoot并分配提供程序. (但如果子模块中有组件/指令,也可以导入/导出子模块.)

export const MODULE_OPTIONS = new InjectionToken<ModuLeoptions>('MODULE_OPTIONS');

    @NgModule({
      //You don't have to IMPORT/EXPORt if MySubmodule doesn't have any component/directive declaration.
      imports: [MySubModule],exports:[MySubModule]  
})


 export class Mymodule {
      static forRoot(options: ModuLeoptions = {}): ModuleWithProviders {
        //Now we are able to provide services/values that uses options in the MySubmodule.
        const moduleProviders= MySubmodule.forRoot(options).providers;
        moduleProviders.push({provide: MODULE_OPTIONS,useValue: options});
        return {ngModule: Mymodule,providers: moduleProviders};
        }
    }

大佬总结

以上是大佬教程为你收集整理的angular 5,将配置数据传递给导入的子模块全部内容,希望文章能够帮你解决angular 5,将配置数据传递给导入的子模块所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。