Angularjs 试图从控制器调用服务中的方法

Angularjs 试图从控制器调用服务中的方法,angularjs,angularjs-scope,angularjs-service,angularjs-controller,Angularjs,Angularjs Scope,Angularjs Service,Angularjs Controller,我试图从控制器调用服务中的方法,但收到错误: “TypeError:undefined不是函数” 有人认为我的安排有什么问题吗 valid.js angular.module('valid', [ 'ui.router', 'valid.controllers', 'valid.service' ]).config(function config($stateProvider) { $stateProvider .state('valid', {

我试图从控制器调用服务中的方法,但收到错误:

“TypeError:undefined不是函数”

有人认为我的安排有什么问题吗

valid.js

angular.module('valid', [
    'ui.router',
    'valid.controllers',
    'valid.service'
]).config(function config($stateProvider) {
    $stateProvider
        .state('valid', {
            url: '/valid',
            views: {
                "main": {
                    controller: 'ValidCtrl',
                    templateUrl: 'valid/valid-template.html'
                }
            },
            data: { pageTitle: 'Valid' }
        });
});
valid-controller.js

angular.module('valid.controllers', [
    'ui.router',
    'ngResource',
    'valid.service'
]).controller('ValidCtrl', function ($rootScope, $scope, $http, validSrvc) {
    validSrvc.getUserFitnessActivities(4510789);

});
valid-service.js

angular.module('valid.service', [
    'ui.router',
    'ngResource'
]).service('validSrvc', ['$http', function($rootScope, $scope, $http) {
    var organizationId = '5319e5f6e5a';
    var accessToken = 'yxqSf7y';
    this.getUserFitnessActivities = function (validUserid) {
        return $http({
            url: 'https://api.mydomain.com/v1/organizations/' + organizationId + '/users/' + validicUserid + '/fitness.json?access_token=' + accessToken,
            method: 'GET'
        });
    };

}]);

我看到了几个问题:

  • 在控制器中,您引用了错误的服务名称。validicSrvc应为validSrvc
  • 在服务中,您不应该有$scope$无法将作用域注入到服务中
  • 服务参数使用注入['$http',函数($rootScope…等等)的数组形式。我相信您正在将$rootScope绑定到$http注入。您的数组应该具有函数的所有参数
换句话说

[ '$rootScope', '$http', function($rootScope, $http)...

validicSrvc!=validSrvc!valid-controller.js中没有输入错误吗?validicSrvc应该是validSrvc?-我在控制器上的错误是指validicSrvc…我更改了代码,但错过了一点。我将实际代码中的所有内容都称为“validic”。-从服务中删除了$scope-更改了服务参数以反映$rootScope和$http我现在得到的错误是:“TypeError:对象不是函数”