Angular 18升级19后APP_INITIALIZER迁移出现NG0203错误求助
解决Angular 19升级后APP_INITIALIZER的NG0203错误
错误原因是你直接执行了initializeApp1(inject(AuthService)),inject()被调用在Angular注入上下文之外(模块配置阶段不属于注入上下文),因此触发NG0203报错。
你可以用以下两种方式修正代码:
方式一:用工厂函数包裹注入逻辑
providers: [ provideAppInitializer(() => { const authService = inject(AuthService); return initializeApp1(authService); }) ]
这种方式把inject()放在provideAppInitializer接收的工厂函数内部,Angular会在注入上下文里执行这个函数,确保inject()调用合法。
方式二:保留依赖声明数组
如果initializeApp1本身是一个接收AuthService作为参数的工厂函数,也可以直接指定依赖数组,和旧写法逻辑一致:
providers: [ provideAppInitializer(initializeApp1, { deps: [AuthService] }) ]
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

