使用未在任何地方注入的 angular 服务

Use an angular service which is not injected anywhere

假设您有一个 Angular 服务 (ZombieService),例如,它监视另一个服务。 而且,ZombieService 没有被注入任何地方 DEMO

问题是,当您不在任何地方注入服务时,该服务将被完全忽略(不执行)。解决方法是注入,比如,AppComponent

@Component({
    selector: 'my-app',
    templateUrl: './app.component.html',
    styleUrls: [ './app.component.scss' ]
})
export class AppComponent  {
    constructor(zombieService: ZombieService) {}
    ...
}

虽然这可行,但我想知道是否有更好的解决方案。有什么建议吗?

The problem is that, when you do not inject a service anywhere, that service is completely ignored (not executed).

因为一个没有被其他人引用的文件,和来自不同项目的文件一样好。初始化没有引用的服务是没有意义的。

WebPack 或任何其他 JS 编排工具仅考虑从主入口文件引用的文件来创建捆绑。

这些类型的服务在 AppComponent 注入,也可以在 module-level 组件注入。

这是最常见的跟踪/分析案例,其中大多数都需要在服务中完成初始化步骤,这需要在某些组件中注入服务(可能 AppComponent ).