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 相关文章推荐
JavaScript 自动完成脚本整理(33个)
Oct 20 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
Mar 01 Javascript
javascript生成大小写字母
Jul 03 Javascript
js倒计时小实例(多次定时)
Dec 08 Javascript
Bootstarp基本模版学习教程
Feb 01 Javascript
javascript 中select框触发事件过程的分析
Aug 01 Javascript
基于jstree使用AJAX请求获取数据形成树
Aug 29 Javascript
Angular6 Filter实现页面搜索的示例代码
Dec 02 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
Aug 16 Javascript
Element Notification通知的实现示例
Jul 27 Javascript
vue 子组件和父组件传值的示例
Sep 11 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
Sep 11 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中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
php实现上传图片文件代码
2015/07/19 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
php设计模式之委托模式
2016/02/13 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
如何正确理解javascript的模块化
2017/03/02 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
vue.js单文件组件中非父子组件的传值实例
2018/09/13 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
2020/05/13 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
python使用urllib2提交http post请求的方法
2015/05/26 Python
使用python绘制二维图形示例
2019/11/22 Python
python如何使用代码运行助手
2020/07/03 Python
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
在校学生职业规划范文
2014/01/08 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
德劲DE1108畅想
2021/04/22 无线电
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
Python制作春联的示例代码
2022/01/22 Python
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android