gpt4 book ai didi

typescript - Angular 2 - 如何将依赖项注入(inject)到不是组件且未作为服务公开的自定义类

转载 作者:太空狗 更新时间:2023-10-29 17:21:30 24 4
gpt4 key购买 nike

我们正在这里开发用 TypeScript 和 Angular 2 编写的相当大规模的应用程序,我在理解如何以自定义方式使用 Angular 2 注入(inject)器方面遇到了一个主要问题。实际上我不确定我是否在尝试做一些框架不打算做的事情,但到目前为止我只发现了我尝试做的事情的糟糕解决方案......

所以,我想要实现的是将 Injector 中的值应用到没有包含 @Component 行为并且没有作为服务暴露给 Injector 的类,映射到全局或组件级注入(inject)器。(我认为我非常了解如何在这两个范围内注入(inject)内容并且工作得很好)。

我想做的是这样的:

export class SomeCustomClass {
constructor(injection:InjectionToken) {
console.log('injection', injection);
}
}

而且我确实知道,如果我将此类添加到 Bootstrap 中的注入(inject)器或作为 @component 装饰器的一部分,那会很好用。问题是这不是我打算做的。

我需要的是这样的:

factory.createInstanceWithInjectionApplied(SomeCustomClass);

我实际上可以接受简单的:

var instance:SomeCustomClass = new SomeCustomClass();

但这似乎不太现实。

哦,是的,我已经尝试了所有我能想到的方法——@Injectable() 对这样创建的实例什么都不做,Injector.createAndResolve 似乎也不起作用,并且保持某种静态属性可以访问应用程序注入(inject)器似乎也不是一个好主意。

提前致谢!

最佳答案

您是否尝试使用 Injector类(class)?

这是一个示例:

var injector = Injector.resolveAndCreate([Car, Engine]);
var car = injector.get(Car);

还有一个:

export class SomeCustomClass {
constructor(injector:Injector) {
(...)
}
}

关于typescript - Angular 2 - 如何将依赖项注入(inject)到不是组件且未作为服务公开的自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35224985/

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