无法在我的控制器中访问我的服务(未定义)

时间:2014-12-21 12:48:29

标签: angularjs angular-services

我正在尝试创建一个服务来执行一些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很新,所以...... 任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

从注射中移除$log。您目前正在将myService服务“命名”为$log,因此控制器内的myServiceundefined

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();
});

请记住移除右括号。