Невозможно прочитать свойство «получить» неопределенного с помощью Angular

Я пытаюсь создать простую аутентификацию с использованием angular, она выдает эту ошибку при вызове службы ajax. Вот код.

Код

mainModule.controller("loginController", ['$scope', '$http', '$rootScope', '$presence', '$apps', '$helpers',
    function($scope, $http, $rootScope, $presence, $apps, $helpers) {
        $scope.currentUser;
        $scope.password;
        $rootScope.url = "http://localhost:53455/eSuperVision.svc";
        $scope.login = function($scope, $http) {
            $http.get($rootScope.url + "/login/" + $scope.currentUser + "/" + $scope.password).success(function(response) {
                if (response == true) {
                    location.href = "home.html";
                } else {
                    $("#loginDialog").effect("shake");
                    $scope.showError = true;
                }
            });
        }
    }
]);

person Sajeetharan    schedule 03.04.2015    source источник


Ответы (2)


Поскольку $http, который вы используете в своей функции входа в систему, не является службой $http, введенной в контроллер, а произвольным параметром, переданным функции.

Просто удалите его: $scope.login = function() {...}

person cuttlas    schedule 03.04.2015
comment
ты опередил меня на 28 секунд :p - person Pankaj Parkar; 03.04.2015

Ваша функция не должна передавать аргументы $http и $scope, они переопределяются функцией, и оба они становятся неопределенными. вы должны использовать зависимость, которую вы ввели из контроллера.

Код

$scope.login = function() {
  $http.get($rootScope.url + "/login/" + $scope.currentUser + "/" + $scope.password).success(function(response) {
    if (response == true) {
      location.href = "home.html";
    } else {
      $("#loginDialog").effect("shake");
      $scope.showError = true;
    }
  });
}
person Pankaj Parkar    schedule 03.04.2015