我的角度应用程序中有两个可注射类
@Injectable()
class B {}
@Injectable()
class A {
constructor(b:B) { }
}
我希望A类是Singleton,B类是Transient
我开始知道我可以在A类中使用 ReflectiveInjector.resolveAndCreate 来获取B类的实例。有没有更好的方法来实现这个目标?
答案 0 :(得分:3)
由于提供程序的所有现有配方都创建单例,甚至是工厂,您可以创建自己的注入器,从组件注入器继承所有提供程序,并使用resolveAndInstantiate方法每次都获取新实例:
ReflectiveInjector
另请注意,@ 5.x.x中不推荐使用{{1}}。似乎新StaticInjector中没有其他选择。我报告了an issue。
答案 1 :(得分:1)
有一种方法可以使用StaticInjector和功能性Javascript来解决。使用Max Koretskyi答案,我做了很少的修改:
get(df.filter($"F1" === "x" && $"F2"==="y"))
// Double = 1.0
get(df.filter($"F1" === "x" && $"F2"==="y1"))
// Double = 0.0