Angular6使用forRoot() 注册单一实例服务问题


Posted in Javascript onAugust 27, 2019

假如我们有一个shareModule来存放公用的组件(Component)、指令(Directive)、管道(Pipe)、服务(Service),为避免各个子模块引用shareModule时造成App中有多个一样的单一实例服务的问题。我们可以在shareModule中建立同意的App层级的服务。

ShareModule
import { NgModule, ModuleWithProviders } from '@angular/core';
@NgModule({
  imports: [
    HttpModule,
    JsonpModule,
    ...
  ],
  declarations: [
    ShowItDirective,
    ...
  ],
  exports: [
    ShowItDirective,
    ...
  ]
})
export class ShareModule{
  // 给shareModule添加forRoot
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: ShareModule,
      providers: [
        MessageService,
        NotifyService,
        ... any service
      ],
    };
  }
}
AppModule
@NgModule({
 declarations: [
  AppComponent,
 ],
 imports: [
  // 使用
  ShareModule.forRoot(),
 ],
 providers: [
  
 ],
 bootstrap: [AppComponent]
})
export class AppModule { }

这样ShareModule中每一个service都只在app中注册了一个实例,也避免了每次使用service都要provider的问题。

ERROR NullInjectorError: StaticInjectorError(AppModule)[SurveyComponent -> PermissionCheckerService]:
NullInjectorError: No provider for PermissionCheckerService!

总结

以上所述是小编给大家介绍的Angular6使用forRoot() 注册单一实例服务问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
基于jQuery的history历史记录插件
Dec 11 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
Jun 25 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
Aug 07 Javascript
window.open打开窗口被拦截的快速解决方法
Aug 04 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
Aug 05 Javascript
Javascript中document.referrer隐藏来源的方法
Jan 16 Javascript
js实现点击按钮复制文本功能
Jul 20 Javascript
vue移动端监听滚动条高度的实现方法
Sep 03 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
Oct 11 Javascript
详解Next.js页面渲染的优化方案
Jan 27 Javascript
详解Vue中Axios封装API接口的思路及方法
Oct 10 Javascript
详解CocosCreator消息分发机制
Apr 16 Javascript
jQuery - AJAX load() 实例用法详解
Aug 27 #jQuery
JS实现提示框跟随鼠标移动
Aug 27 #Javascript
js对象数组和对象的使用实例详解
Aug 27 #Javascript
vue递归组件实战之简单树形控件实例代码
Aug 27 #Javascript
vue项目中引入Sass实例方法
Aug 27 #Javascript
package.json配置文件构成详解
Aug 27 #Javascript
axios如何利用promise无痛刷新token的实现方法
Aug 27 #Javascript
You might like
用PHP和ACCESS写聊天室(十)
2006/10/09 PHP
PHP5 面向对象(学习记录)
2009/12/02 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
Jquery实现的角色左右选择特效
2014/05/21 Javascript
JavaScript中具名函数的多种调用方式总结
2014/11/08 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
jQuery插件扩展实例【添加回调函数】
2016/11/26 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
js链表操作(实例讲解)
2017/08/29 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
Python实现一个简单的MySQL类
2015/01/07 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
基于python代码批量处理图片resize
2020/06/04 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
社区母亲节活动记录
2014/03/06 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
母亲节寄语大全
2015/02/27 职场文书
2014年底个人工作总结
2015/03/10 职场文书
Java Spring读取和存储详细操作
2022/08/05 Java/Android