使用未在任何地方注入的 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
).
假设您有一个 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
).