我正在尝试创建一个服务来执行一些AJAX请求。 但是,当我尝试在控制器中执行某些操作时,我的服务一直未定义。这是我的代码。
我在这里找到了很多例子,我试图跟随它们很多,但无论我做什么,我的服务都不明确。
我的服务:
MyApp.factory('myService', function($http) {
return {
findAll: function() {
return $http.get('/findAll')
.then(function(result) {
return result.data;
});
}
}
});
我的控制器:
MyApp.controller('UserController', ['$scope', '$http', 'myService', function($scope, $http, $log, myService) {
// Whatever I do with myService here it gets undefined.
//$scope.test = myService.findAll();
//myService.findAll();
}]);
我认为我没有正确地注射它,但我看不出什么是错的。我对Angular很新,所以...... 任何指针都会受到赞赏。
答案 0 :(得分:2)
从注射中移除$log
。您目前正在将myService
服务“命名”为$log
,因此控制器内的myService
为undefined
。
MyApp.controller('UserController', ['$scope', '$http', 'myService',
function($scope, $http, myService) {
// Whatever I do with myService here it gets undefined.
//$scope.test = myService.findAll();
//myService.findAll();
}]);
第二个解决方案
为了避免必须“命名”这样的服务,可以在不命名的情况下注入它们。
MyApp.controller('UserController', function($scope, $http, myService) {
// Whatever I do with myService here it gets undefined.
//$scope.test = myService.findAll();
//myService.findAll();
});
请记住移除右括号。