【问题标题】:Inject Angular factory dependency into Typescript class without polluting constructor?将Angular工厂依赖注入Typescript类而不污染构造函数?
【发布时间】:2016-11-16 17:00:36
【问题描述】:
我正在将工厂编写为 Typescript 类,并在需要时使用 new FactoryName() 对其进行实例化。
通过这样做,我将它作为工厂工作:.factory('FactoryName', function() { return FactoryName; }),它工作得很好,但现在我需要将我在 Typescript 之外制作的另一个工厂注入其中,而不会污染构造函数调用。这可能吗?
【问题讨论】:
标签:
angularjs
typescript
dependency-injection
angularjs-service
angularjs-factory
【解决方案1】:
是的
app.factory('FactoryName', ['...', (...deps) => new FactoryName(...deps)]);
由于匿名函数不能很好地配合$inject注解,数组注解更适合这种情况。
【解决方案2】:
我找到了解决方法:
export function FactoryName(injectedService1, injectedService2) {
return class FactoryClass {
constructor() {
let test = injectedService1.testFunction();
}
}
}
app.factory('FactoryName', FactoryName)