我已经在Google上进行了广泛的搜索,但似乎找不到与此问题相关的其他人,因此我必须缺少一些东西。我将所有AppModule服务都转换为使用ProvideIn:'root'方法,但似乎无法正常工作。
import { Injectable } from '@angular/core';
Injectable({
providedIn: 'root'
})
export class CommonService{
UserName : string = 'Guest';
Roles : Array<any> = [];
Theme: string = 'standard';
constructor(){}
}
以下是使用该服务的组件之一:
import { CommonService } from './Services/common.service';
@Component({
selector: 'navBar',
templateUrl: './navbar.html'
})
export class NavBar {
constructor(private session: CommonService) {}
在运行时,这是控制台中的错误:
StaticInjectorError(AppModule)[NavBar-> CommonService]: StaticInjectorError(平台:核心)[导航栏-> CommonService]: NullInjectorError:没有CommonService提供程序!
我已经检查了文档,但看不到哪里出了问题。我想念什么?
忘记了,NavBar是在SharedModule中声明的组件,SharedModule是在AppModule中导入的。
答案 0 :(得分:0)
您可能会错过Injectable开头的“ @”:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class CommonService{
UserName : string = 'Guest';
Roles : Array<any> = [];
Theme: string = 'standard';
constructor(){}
}
IDE中可能没有错误,但看起来可能是问题所在