如何将 $resource 注入提供者?

How to inject $resource into provider?

我继承了以下代码,我需要将$resource注入到服务中。我是 AngularJS 的新手,并没有找到非常有帮助的文档。我尝试过的一切都失败了。有什么想法吗?

(function (angular) {

angular.module('myModule')
    .provider('myService', [myServiceProvider]);

function myServiceProvider() {
    ...
}

谢谢。

您无权访问提供程序函数内的依赖项,因为 运行 在配置阶段。您可以通过在提供程序函数中注入 $injector 服务来获取它们。

但更好更简洁的方法是直接在提供程序 $get 函数中注入依赖项。

代码

(function (angular) {

    angular.module('myModule')
        .provider('myService', [myServiceProvider]);

    function myServiceProvider() {
        this.$get = function($resource){
            //you could have access here to $resource
            //create $resource object here and return it.
            this.getData = function(){
                return $resource('http://example.com/resource);
            }
        }
    }
)();