注入的服务未在控制器中识别

时间:2013-10-30 12:20:56

标签: javascript angularjs

var login_app = angular.module('login_app',[]);


login_app.factory('login_service', function($http) {
   return {
        login: function() {
             //return the promise directly.
             return $http.get('/service/login')
                       .then(function(result) {
                            //resolve the promise as the data
                            return result.data;
                        });
        }
   }
});  

login_app.controller('login_controller',
                    ['$scope',
                     function($scope,login_service){

                      $scope.login_username = "";
                      $scope.login_password = "";
                      $scope.remember_login = false;
                      $scope.login_button_action = function(){
                                                    login_service.login();
                                                 }

                    }]);

我有一个登录表单,在此控制器的范围内,工作正常。 每当我按下登录按钮时,都会通过ng-click指令调用login_button_action。

my problem is that I keep getting this error in my JavaScript console.

ReferenceError: login_service is not defined

我的控制器使用该服务的wya是否有问题?

1 个答案:

答案 0 :(得分:2)

您需要将login_service添加到上面的定义中:

login_app.controller('login_controller', ['$scope','login_service',
    function($scope,login_service){
        // Your code using the service.
}]);

当然......服务脚本文件需要在文档中链接。

要完成......如果你不考虑缩小等,你根本不需要这样做。在那种情况下,它可以只是

 login_app.controller('login_controller', function($scope, login_service){
      // Your code using the service.
 }]);