在runInContext中使用inject()时出现NullInjectorError



当我在runInContext中调用@inject()时,以下代码将触发NullInjectorError。如果服务是providedIn: 'root'或在模块providers中传递,则不会发生这种情况。

知道为什么吗?

@Injectable()
class Service {}
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [Service],
})
export class AppComponent {
name = 'Angular ' + VERSION.major;
public constructor(service: Service, injector: EnvironmentInjector) {
console.log(service); // OK
console.log(inject(Service)); //OK
setTimeout(() => {
injector.runInContext(() => {
console.log(inject(Service)); //KO
});
}, 1000);
}
}

Stacklitz

根据Angular#47566,这是目前的设计,但可以改进。

所以等待&看见

相关内容

  • 没有找到相关文章

最新更新