Angular 2 - 如何将@Injectable()传递给函数或自定义装饰器?

时间:2016-09-14 00:08:18

标签: angular typescript dependency-injection

我为类方法创建了一个自定义装饰器,它依赖于装饰方法类的注入服务。这个装饰器依赖的注入是userService和authService。

这是装饰者:


export function authenticated(target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor) {
    let originalMethod = descriptor.value;

    descriptor.value = function(...args: any[]) {
        if (!this.userService || !this.authService) {
            throw Error("Class must import userService and authService");
        }

        if (!this.userService.isAuthenticated$.value) {
            return this.authService.openLoginSignup();
        }

        return originalMethod.apply(this, args);
    };

}

我实现了一项检查,以确认服务是否正确导入父类,但问题是它只在调用修饰方法时被调用。

有没有办法将角度2注射剂注入装饰器或其他非组件?

0 个答案:

没有答案