使用aurelia中的自定义修饰符将依赖项注入类中

使用aurelia中的自定义修饰符将依赖项注入类中,aurelia,Aurelia,在aurelia中,是否可以让自定义装饰器自动将依赖项注入到它所装饰的类中,或者每个装饰的类是否需要注入依赖项本身(至少在其构造函数中) 换言之,这是最好的办法吗: 自定义装饰器(my Decorator.js) 装饰类 import {inject} from 'aurelia-framework'; import {Dependency} from 'dependency'; export function MyDecorator() { return function(targe

在aurelia中,是否可以让自定义装饰器自动将依赖项注入到它所装饰的类中,或者每个装饰的类是否需要注入依赖项本身(至少在其构造函数中)

换言之,这是最好的办法吗:

自定义装饰器(my Decorator.js)

装饰类

import {inject} from 'aurelia-framework';
import {Dependency} from 'dependency';

export function MyDecorator() {
    return function(target) {
        inject(Dependency)(target);
    }
}
import {MyDecorator} from "my-decorator";

@MyDecorator()
export class DecoratedClass {
    constructor(dependency) {
        this.dependency = dependency;
    }
}

类的
inject
属性通常是静态的。当使用大多数解析器时,它们只是“增强”静态注入属性,以便容器可以使用指定的解析器解析它们并将它们传递给构造函数。我不知道类装饰器在这个实例中会有什么帮助,因为它不会以我能想到的任何方式装饰实例,尽管我可能错了

如果您试图创建一个新实例,但仍然使用DI来解析依赖项,那么您应该查看支持此功能的
工厂
解析程序

如果您试图完全不使用构造函数,另一个想法是装饰一个属性或函数,它使用一个完全独立的属性
static customInject
,例如,在开始调用时解析实例的依赖关系