dependency-injection – Angular 2 – 将依赖项注入装饰器工厂

前端之家收集整理的这篇文章主要介绍了dependency-injection – Angular 2 – 将依赖项注入装饰器工厂前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法使用Angular的DI将依赖注入装饰器工厂?我们将以下代码作为简化示例:
@Component({
  selector: 'hello-component',template: '<div>Hello World</div>'
})
export class HelloComponent {
  @PersonName()
  name: string;

  ngAfterViewInit() {
    console.log(`Hello,${this.name}`);
  }
}

这里,PersonName装饰器的预期行为是它访问Person依赖项,并使用它来设置类的name属性.

是否有可能为上面的代码实现PersonName装饰器?

目前,要将依赖项注入我的装饰器(以及其他额外的模块类),我正在使用此解决方法
import {Injectable,Injector} from "@angular/core";
@Injectable()
export class ExtraModuleInjector {
  private static injector;

  public static get(token: any) {
    if (ExtraModuleInjector.injector) {
      return ExtraModuleInjector.injector.get(token);
    }
  }

  constructor(public injector: Injector) {
    ExtraModuleInjector.injector = injector;
  }
}

在注入根组件后,它允许使用静态get方法在运行时函数执行期间获取依赖关系.仍在寻找更好的解决方案.

猜你在找的Angularjs相关文章