angularjs provider injector.get

时间:2015-06-04 23:06:42

标签: angularjs provider

有没有办法在运行时使用字符串获取提供程序实例/对象?我可以使用以下方式获得工厂:

var injector  = angular.injector(["myApp", 'ng']);
var keyf1 = injector.get('keyF1');  //-- providing it exists

但如果为提供者完成,injector.get似乎返回提供者的新实例;因为提供程序中存在有状态数据而导致问题,因此新实例不是我需要的 - 我需要使用字符串名称访问当前实例。

我的猜测是,可以通过将状态数据放入提供程序的配置部分来解决,但我不确定这是最好的方法。

1 个答案:

答案 0 :(得分:0)

在Angular.js应用程序开始运行之前,提供程序用于在配置时配置工厂。我们应该使用它们来配置工厂在运行时的行为方式。所以,我认为您需要在运行时访问提供程序。

您可以尝试更改您的方法。您可以将有状态数据发送到工厂。如果你能举一个具体的例子,我可以尝试做一个更好的评论。

此外,这是一个很好的比较:http://fasterxml.github.io/jackson-databind/javadoc/2.5/com/fasterxml/jackson/databind/JsonNode.html