NSwag生成文件中InjectionToken注入失效问题排查
问题排查与解决
首先看你提供的代码,最明显的问题是拼写错误:
- 定义InjectionToken时写的是
API_BASE_UR(少了最后一个字母L),但注入和配置提供者时用的是API_BASE_URL,两者不匹配,导致无法正确注入值。
修正步骤:
- 修正InjectionToken的名称,确保全局一致:
export const API_BASE_URL = new InjectionToken<string>('API_BASE_URL'); // 补全最后一个L
校验导入路径正确性
确认配置提供者的文件中,API_BASE_URL的导入路径'blablablá....'是准确的,路径错误会导致注入的Token不匹配。确认提供者的注入层级
如果你的API客户端服务是在根模块(如AppModule)中注册的,API_BASE_URL的提供者也需要放在根模块的providers数组内;如果是懒加载模块,要确保提供者的作用域能覆盖客户端服务的使用场景,也可以直接给Token配置全局作用域:
export const API_BASE_URL = new InjectionToken<string>('API_BASE_URL', { providedIn: 'root', factory: () => 'http://testUrl' // 这种方式可直接提供全局默认值 });
完成以上修正后,客户端服务的baseUrl就能正确获取到配置的值了。
内容的提问来源于stack exchange,提问作者Yogurtu
相关产品推荐
相关产品推荐

