组件、服务等之外的 Angular 2 服务注入(inject)

标签 angular dependency-injection

想象一下像 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;
    }
}

假设 LoggingServiceAppModule 中提供.如何检索上述示例中的服务实例?

最佳答案

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/

相关文章:

javascript - 如何在 webpack 的生产版本中引用 Web Workers?

dependency-injection - 在 dotnetcore DI 世界中与助手一起工作

用于编译时的 Scala 依赖注入(inject),具有单独的配置

Java IoC 和 Guice - 依赖注入(inject)

angular - 我的主 Angular 构建中有一个子目录 Angular 构建,它在静态 Web 应用程序 Azure 中不起作用

javascript - 在 Angular 中设置 Angular Web 组件的样式

Angular 2禁用清理

angular - 如何从 Angular 项目外部页面上的 SELECT 字段传递数据?

java - 将类路径资源注入(inject) Spring 3 bean

c# - 如何使用 .Net IO 类创建可测试代码?