想象一下像 LoggingService
这样的服务,其中有一个 log(msg: string)
方法。使用 Angular 2 依赖注入(inject),可以很容易地在组件中拥有服务的实例。但是,我找不到在任何不是 Angular 2 组件、服务等的普通类中使用 LoggingService 的可靠解决方案。
例如。该应用程序有一个文件 blacklist.ts,其中包含:
export class Blacklist {
isBlacklisted(name: string): boolean {
let result = false;
if(value == "Alice" || value == "Bob") {
result = true;
LoggingService.log("Name'" + name + "' is blacklisted");
}
return result;
}
}
假设
LoggingService
在 AppModule
中提供.如何检索上述示例中的服务实例?
最佳答案
LoggingService 要么是一个静态类
这样你就可以在没有实例的情况下使用它
或者你需要它的实例来调用方法
the whole purpose is to support re-usability use it like this
import {LoggingService} from 'path/to/service'
export class Blacklist {
private loggingService:LoggingService;
isBlacklisted(name: string): boolean {
let result = false;
if(value == "Alice" || value == "Bob") {
result = true;
this.loggingService.log("Name'" + name + "' is blacklisted");
}
return result;
}
}
关于组件、服务等之外的 Angular 2 服务注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42210672/