Angular6使用forRoot() 注册单一实例服务问题
- 作者: 总是有点二
- 来源: 51数据库
- 2021-08-03
假如我们有一个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() 注册单一实例服务问题,希望对大家有所帮助
推荐阅读
热点文章
Angular中响应式表单的三种更新值方法详析
7
Angularjs实现下拉框联动的示例代码
7
详解AngularJS跨页面传值(ui-router)
2
详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用
3
angular2路由切换改变页面title的示例代码
4
Angular2 组件间通过@Input @Output通讯示例
5
Angularjs中ng-repeat的简单实例
3
AngularJS 中ui-view传参的实例详解
4
浅谈Angular路由守卫
4
详解基于Angular4+ server render(服务端渲染)开发教程
4
