有什么方法可以将服务注入自定义装饰器(Angular)?

时间:2019-09-17 08:59:49

标签: angular typescript dependency-injection decorator

我想创建一个自定义类装饰器,即使没有将ChangeDetectorRef注入目标类中,也需要访问已应用的类的ChangeDetectorRef。

有没有办法做这样的事情:

function ClassDecorator() {
        return (target) => {
        const changeDetectorRef = // Inject change detector ref for target;
    };
}

我希望获得装饰器中ChangeDetectorRef实例的链接。但是我不知道是否有可能。

1 个答案:

答案 0 :(得分:0)

装饰器是TypeScript中可用的一种元编程形式,class decorators上的文档指出,构造函数是传递给它们的唯一参数,因此从理论上讲,您可以将Angular注入依赖项传递给装饰器该类已构建。

我认为您每次都必须在修饰的类中注入ChangeDetectorRef,怀疑是否存在一种使修饰器动态注入的方法。