在没有污染构造函数的情况下将Angular工厂依赖项注入到Typescript类中?

时间:2016-07-13 22:50:11

标签: angularjs typescript dependency-injection angularjs-service angularjs-factory

我将工厂编写为Typescript类,并在需要时使用new FactoryName()进行实例化。

我通过这样做来让它作为工厂工作:.factory('FactoryName', function() { return FactoryName; })并且效果很好,但现在我需要将另一个我在Typcript之外制作的工厂注入其中而不会污染构造函数调用。这可能吗?

2 个答案:

答案 0 :(得分:0)

app.factory('FactoryName', ['...', (...deps) => new FactoryName(...deps)]);

由于匿名函数与$inject注释不兼容,因此数组注释更适合这种情况。

答案 1 :(得分:0)

我找到了解决方法:

export function FactoryName(injectedService1, injectedService2) {
  return class FactoryClass {
    constructor() {
      let test = injectedService1.testFunction();
    }
  }
}

app.factory('FactoryName', FactoryName)