0

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

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

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

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

4

1 回答 1

2

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

因为不被任何其他人引用的文件与来自不同项目的文件一样好。初始化没有参考的服务是没有意义的。

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

这些类型的服务被注入AppComponent,或者也可以在模块级组件中。

这是跟踪/分析的最一般情况,并且有一个初始化步骤需要在服务中完成,这需要在某些组件(可能AppComponent)处注入服务。

于 2019-07-21T17:50:54.357 回答