Я пытаюсь обрабатывать обработку ошибок/ошибок из службы в контроллере.Угловой JS: Как передать ответ от службы контроллеру?
Я попытался это:
Услуги:
.factory('AuthenticationService',
['Base64', '$http', '$cookieStore', '$rootScope',
function (Base64, $http, $cookieStore, $rootScope) {
var service = {};
service.Login = function (username, password, callback) {
var authdata = Base64.encode(username + ':' + password);
$rootScope.globals = {
currentUser: {
username: username,
authdata: authdata
}
};
$http.defaults.headers.common['Authorization'] = 'Basic ' + authdata;
$cookieStore.put('globals', $rootScope.globals);
$http.post('http://localhost:8080/v1/login', { username: username, password: password })
.success(function (response) {
callback(response);
});
};
service.ClearCredentials = function() {
$rootScope.globals = {};
$cookieStore.remove('globals');
$http.defaults.headers.common.Authorization = 'Basic ';
};
return service;
}])
и контроллер:
.controller('LoginController',
['$scope', '$rootScope', '$location', 'AuthenticationService',
function ($scope, $rootScope, $location, AuthenticationService) {
// reset login status
AuthenticationService.ClearCredentials();
$scope.login = function() {
$scope.dataLoading = true;
AuthenticationService.Login($scope.username, $scope.password, function (response) {
if(response.success) {
$location.path('/');
} else {
$scope.error= response.message;
$scope.dataLoading = false;
}
});
};
}]);
Если я пытаюсь с предупреждением, он показывает только на службе, но не в контроллер.
"ответ не определен" -.-, Я тоже думаю о обещании, но я не знаю, как это сделать. – Kai
Можете ли вы сделать 'console.log (response)' в своей '$ http.post'? Потому что это действительный код (я думаю), но вам нужно отправить обратно данные! – trichetriche
моя ошибка! это хорошо, его работа (у меня был ответ на функцию (ошибка) .. большое спасибо! – Kai