我正在使用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;
});
}]);
答案 0 :(得分:3)
从注入的服务依赖项中删除$scope
,$scope
只能注入控制器,并作为angular中指令的链接函数的参数传入。您的服务应该是:
listdnModule.factory('getActiveDnService', function ($http) {
return {
getActiveDnSvc: function (id) {
return $http({
method: 'POST', url: 'svc.aspx/getActiveDN', data: "{'id':" + id, cache: true
});
}
};
});