Angular JS loginController与loginService绑定

时间:2014-07-25 17:34:23

标签: javascript angularjs login

我正在尝试从我的loginController调用loginService,但是我收到了这个返回:

  

ReferenceError:未定义loginService

loginController.js:

app.controller('loginCtrl', ['$scope', LoginCtrl]);

function LoginCtrl($scope){   
    $scope.login = function(){
        $scope.msgTxt = '';
        $scope.login = function(user){
            loginService.login(user, $scope); //call login service
        };
    }
}

loginService.js:

app.factory('loginService', function($http){
    return{
        login:function(user, scope){
            var $promise = $http.post('data/user.php', user); //send data to user.php
            $promise.then(function(msg){
                if(msg.data=='success'){ scope.msgTxt = "Login Succeded";}
                else {scope.msgTxt = "Login Failed";}
            });
        }
    }
});

在index.html上调用两个.js。登录表单作为指令附加在我页面的标题上。

我是否必须将服务作为参数传递给控制器​​?我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

是的,您必须将服务传递给控制器​​,如下所示:

app.controller('loginCtrl', ['$scope', 'loginService',
  function ($scope, loginService) {   
    $scope.login = function(){
      $scope.msgTxt = '';
      $scope.login = function(user){
          loginService.login(user, $scope); //call login service
      };
    }
}]);