我有一个设计为自包含的角度模块。消费应用程序可以添加带有 url 参数的指令,并且在与小部件交互时,它将使用该 url 作为它的整体数据源。这有一个通用的 LoadService,它使用 $http 来加载数据,并期望特定的 JSON 格式来运行小部件。
好吧,现在我正在尝试重构,以便有人也可以创建自定义加载服务并将其注入模块,但如果它没有注入,那么它将使用默认数据加载。因此,我试图弄清楚如何创建一种注入 CustomLoadService 的方式,如果它是由使用模块的应用程序定义的。但是,如果未定义自定义服务,它不应该出错,它应该只使用默认服务。
我正在调查$injector.get
并认为这是一种可能性,但我无法将其$injector
注入控制器。我认为这就像$location
注射一样简单。就像是...
angular
.module('Widget')
.controller('WidgetController',[
'$scope',
'WidgetLoadService',
'$injector',
WidgetController
]);
这种方法似乎不起作用,所以我想知道......解决这个问题的最佳最“角度方式”是什么。我应该如何使用 $injector。