Angularjs 试图从控制器调用服务中的方法
我试图从控制器调用服务中的方法,但收到错误: “TypeError:undefined不是函数” 有人认为我的安排有什么问题吗 valid.jsAngularjs 试图从控制器调用服务中的方法,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', {
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:对象不是函数”