zii*_*zii 7 typescript angular
我们在这里使用TypeScript和Angular 2编写的相当大规模的应用程序,我有一个主要问题,了解如何以自定义方式使用Angular 2注入器.实际上我不确定我是不是想尝试做一些不是框架意图的事情,但到目前为止,我发现只有不好的解决办法才能做到...
所以,我想要做到的,是从喷油器适用值,未纳入@Component行为,并且不暴露喷油器的服务,映射到全球或组件级别注射器类.(我想我很清楚如何在这两个范围中注入东西并且工作得很好).
我正在尝试的是这样的事情:
export class SomeCustomClass {
constructor(injection:InjectionToken) {
console.log('injection', injection);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道如果我将这个类添加到bootstrap中的注入器中,或者作为@component装饰器的一部分,它会很好用.问题是,这不是我打算做的.
我需要的是:
factory.createInstanceWithInjectionApplied(SomeCustomClass);
Run Code Online (Sandbox Code Playgroud)
我实际上可以忍受简单:
var instance:SomeCustomClass = new SomeCustomClass();
Run Code Online (Sandbox Code Playgroud)
但这似乎并不现实.
哦,是的,我已经尝试了我能想到的一切 - @Injectable()对这样创建的实例什么都不做,Injector.createAndResolve似乎也不起作用并保持一定的静态属性,可以访问应用程序Injector不看起来也是一个好主意.
提前致谢!
你尝试使用该类吗Injector?
这是一个示例:
var injector = Injector.resolveAndCreate([Car, Engine]);
var car = injector.get(Car);
Run Code Online (Sandbox Code Playgroud)
和另一个:
export class SomeCustomClass {
constructor(injector:Injector) {
(...)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2528 次 |
| 最近记录: |