gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:09:46 25 4
gpt4 key购买 nike

有没有办法使用 Angular 的 DI 将依赖项注入(inject)装饰器工厂?让我们以下面的代码作为一个简化的例子:

@Component({
selector: 'hello-component',
template: '<div>Hello World</div>'
})
export class HelloComponent {
@PersonName()
name: string;

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

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

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

最佳答案

目前,为了将依赖项注入(inject)我的装饰器(和其他额外的模块类),我正在使用这个解决方法:

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;
}
}

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

关于dependency-injection - Angular 2 - 将依赖项注入(inject)装饰器工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37906632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com