如何在AngularJS中从控制器调用工厂/服务?错误:组件$injector中存在未知的提供程序错误

如何在AngularJS中从控制器调用工厂/服务?错误:组件$injector中存在未知的提供程序错误,angularjs,Angularjs,我正在用AngularJS开发一个移动应用程序。首先,我像往常一样调用控制器中的所有$http请求。现在我已经阅读了更多关于Angular的内容,我发现这可能不是最佳实践,特别是如果您希望在控制器之间共享数据。所以我现在正在改造我的控制器/服务系统 现在来谈谈问题。我正在从控制器调用一个服务,但收到一个错误:组件$injector中的未知提供程序错误 有人能帮我吗 法典委员会: listdnModule.factory('getActiveDnService', function ($scope

我正在用AngularJS开发一个移动应用程序。首先,我像往常一样调用控制器中的所有$http请求。现在我已经阅读了更多关于Angular的内容,我发现这可能不是最佳实践,特别是如果您希望在控制器之间共享数据。所以我现在正在改造我的控制器/服务系统

现在来谈谈问题。我正在从控制器调用一个服务,但收到一个错误:组件$injector中的未知提供程序错误

有人能帮我吗

法典委员会:

listdnModule.factory('getActiveDnService', function ($scope, $http) {
    return {
            getActiveDnSvc: function (id) {
                return $http({
                    method: 'POST', url: 'svc.aspx/getActiveDN', data: "{'id':" + id + "}", cache: true
                });
            }
    };
});

listdnModule.controller('listdnCtrl', ['$scope', '$http', 'getActiveDnService', function ($scope, $http, svc) {
    $scope.mjav = 1;
    svc.getActiveDnSvc($scope.mjav).success(function (data) {
        $scope.listdn = data.d;
    });
}]);

从服务的注入依赖项中删除
$scope
$scope
只能注入控制器,并作为指令的链接函数的参数传入。您的服务应该如下所示:

listdnModule.factory('getActiveDnService', function ($http) {
    return {
            getActiveDnSvc: function (id) {
                return $http({
                    method: 'POST', url: 'svc.aspx/getActiveDN', data: "{'id':" + id, cache: true
                });
            }
    };
});

从服务的注入依赖项中删除
$scope
$scope
只能注入控制器,并作为指令的链接函数的参数传入。您的服务应该如下所示:

listdnModule.factory('getActiveDnService', function ($http) {
    return {
            getActiveDnSvc: function (id) {
                return $http({
                    method: 'POST', url: 'svc.aspx/getActiveDN', data: "{'id':" + id, cache: true
                });
            }
    };
});

从服务的注入依赖项中删除
$scope
$scope
只能注入控制器,并作为指令的链接函数的参数传入。您的服务应该如下所示:

listdnModule.factory('getActiveDnService', function ($http) {
    return {
            getActiveDnSvc: function (id) {
                return $http({
                    method: 'POST', url: 'svc.aspx/getActiveDN', data: "{'id':" + id, cache: true
                });
            }
    };
});

从服务的注入依赖项中删除
$scope
$scope
只能注入控制器,并作为指令的链接函数的参数传入。您的服务应该如下所示:

listdnModule.factory('getActiveDnService', function ($http) {
    return {
            getActiveDnSvc: function (id) {
                return $http({
                    method: 'POST', url: 'svc.aspx/getActiveDN', data: "{'id':" + id, cache: true
                });
            }
    };
});

这几乎是事实。链接函数中的范围不是注入,只是正常参数。但是你的回答是正确的,欢迎你。这就是为什么您在链接中没有看到
$scope
,而是
scope
,更确切地说:“这是一个正常参数”:)哦,谢谢您,先生!我一直在读关于不能做到这一点的书,但我没有想到这一点,因为这对我来说真的很新鲜,我已经连续工作了两天。你使我免于许多挫折。我再次感谢你!这几乎是事实。链接函数中的范围不是注入,只是正常参数。但是你的回答是正确的,欢迎你。这就是为什么您在链接中没有看到
$scope
,而是
scope
,更确切地说:“这是一个正常参数”:)哦,谢谢您,先生!我一直在读关于不能做到这一点的书,但我没有想到这一点,因为这对我来说真的很新鲜,我已经连续工作了两天。你使我免于许多挫折。我再次感谢你!这几乎是事实。链接函数中的范围不是注入,只是正常参数。但是你的回答是正确的,欢迎你。这就是为什么您在链接中没有看到
$scope
,而是
scope
,更确切地说:“这是一个正常参数”:)哦,谢谢您,先生!我一直在读关于不能做到这一点的书,但我没有想到这一点,因为这对我来说真的很新鲜,我已经连续工作了两天。你使我免于许多挫折。我再次感谢你!这几乎是事实。链接函数中的范围不是注入,只是正常参数。但是你的回答是正确的,欢迎你。这就是为什么您在链接中没有看到
$scope
,而是
scope
,更确切地说:“这是一个正常参数”:)哦,谢谢您,先生!我一直在读关于不能做到这一点的书,但我没有想到这一点,因为这对我来说真的很新鲜,我已经连续工作了两天。你使我免于许多挫折。我再次感谢你!