angular - StaticInjectorError(AppModule) Service -> Angular 中的 InjectionToken 错误
问题描述
如何解决以下错误
AppComponent.html:9 ERROR Error: StaticInjectorError(AppModule)[OzaAuthService -> InjectionToken oza.config.angular]:
StaticInjectorError(Platform: core)[OzaAuthService -> InjectionToken oza.config.angular]:
NullInjectorError: No provider for InjectionToken oza.config.angular!
AuthService.ts :在 AuthService 中调用自定义“oza 包”。
import { OzaAuthService } from '@oza/oza-angular';
@Injectable({
providedIn: 'root'
})
export class AuthService {
_accessToken: string;
constructor(private ozaAuthService: OzaAuthService) {
console.log('ozaAuthService');
this.$getAccessToken().subscribe(token => {
this._accessToken = token;
});
}
public getAccessToken(): string {
return this._accessToken;
}
在 App.module.ts 中导入 oza 包并在提供程序中添加OzaAuthService但仍然出现错误。
import { OzaAuthService} from '@oza/oza-angular';
@NgModule({
declarations: [
AppComponent,
],
imports: [
imports: [
BrowserModule,
NgbModule,
// router
RouterModule.forRoot(routes),
StoreModule.forRoot({}),
})
],
exports: [
HttpClientModule
],
providers: [
**OzaAuthService**
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
bootstrap: [AppComponent]
})
export class AppModule {}
解决方案
查看错误,似乎OzaAuthService
需要一个InjectionToken
名为oza.config.angular来配置服务。您还需要InjectionToken
在 AppModule 中提供此信息。请参阅包的文档或尝试在服务的源代码中找到 InjectionToken 的导出名称。
推荐阅读
- reactjs - 当我使用句柄登录方法时,它会导致“超出最大更新深度”
- ios - iOS SwiftUI:子视图中的数据流流@ObservedObject
- c# - 如何发布到休息 api 并使用 c# 中的非结束流?
- node.js - 如何从 fs.statSync 存根 isFile
- mysql - 为什么在 MySQL 触发器查询中出现语法错误?
- php - 使用 where 子句获取加密数据
- python - 如何使用 Google 的 Universal Sentence Encoder 根据多个文档找到最相似的文档?
- c# - Unity 下载问题 WWW 和 UnityWebRequest
- tcl - 在 tcl 中创建目录的问题
- node.js - 数据库上的firebase once('value')函数没有响应