在不污染构造函数的情况下将 Angular 工厂依赖项注入 Typescript class?
Inject Angular factory dependency into Typescript class without polluting constructor?
我正在将工厂编写为 Typescript class 并在需要时用 new FactoryName()
实例化它。
我通过这样做让它像工厂一样工作:.factory('FactoryName', function() { return FactoryName; })
它工作得很好,但现在我需要将我在 Typescript 之外制作的另一个工厂注入它而不会污染构造函数调用.这可能吗?
是
app.factory('FactoryName', ['...', (...deps) => new FactoryName(...deps)]);
由于匿名函数不能很好地与 $inject
注释一起使用,数组注释更适合这种情况。
我找到了解决方法:
export function FactoryName(injectedService1, injectedService2) {
return class FactoryClass {
constructor() {
let test = injectedService1.testFunction();
}
}
}
app.factory('FactoryName', FactoryName)
我正在将工厂编写为 Typescript class 并在需要时用 new FactoryName()
实例化它。
我通过这样做让它像工厂一样工作:.factory('FactoryName', function() { return FactoryName; })
它工作得很好,但现在我需要将我在 Typescript 之外制作的另一个工厂注入它而不会污染构造函数调用.这可能吗?
是
app.factory('FactoryName', ['...', (...deps) => new FactoryName(...deps)]);
由于匿名函数不能很好地与 $inject
注释一起使用,数组注释更适合这种情况。
我找到了解决方法:
export function FactoryName(injectedService1, injectedService2) {
return class FactoryClass {
constructor() {
let test = injectedService1.testFunction();
}
}
}
app.factory('FactoryName', FactoryName)