Процесс входа пользователя в мое приложение работает. Он подключается к серверу, и ему возвращается статус 200, поэтому он работает нормально. Но после моего конца службы со своей задачей, мой контроллер не выполняет свои строки:Angular JS - Мой контроллер не работает после выполнения моего служебного скрипта
Контроллер:
loginService.signin(formData, function(res) {
console.log('This message never prints');
});
Кто-нибудь есть идея о том, как решить эту проблему? Может быть, мой перехватчик вовлечен в это поведение. Вот мои скрипты:
app.js
'use strict';
var app = angular.module('myapp', [
'ngRoute',
'ngStorage',
'ngCookies',
'myapp.controllers',
'myapp.services'
]);
app.config(['$routeProvider', '$httpProvider', function ($routeProvider, $httpProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/logueo.html',
controller: 'LoginController'
})
.when('/principal', {
templateUrl: 'views/principal.html'
})
.otherwise({
redirectTo: '/'
});
}]);
controller.js
angular.module('myapp.controllers', [])
.controller('LoginController',
['$rootScope',
'$scope',
'$http',
'$location',
'$localStorage',
'loginService',
'$cookies',
function ($rootScope, $scope, $http, $location, $localStorage, loginService, $cookies) {
$scope.signin = function() {
var formData = {
username: $scope.username,
password: $scope.password
};
loginService.signin(formData, function(res) {
// PROBLEM HERE.
// ITS NOT EXECUTING THE REST OF THIS LINES.
// Usuario incorecto.
if (res.type == false) {
console.log("FALSE " + res.data);
}
// Usuario correcto.
else {
window.location = "#/principal.html";
}
}, function() {
$rootScope.error = "Error en el logueo del usuario";
});
}
}]);
service.js
'use strict';
angular.module('myapp.services', [])
.factory('loginService', ['$http', '$localStorage', 'tokenStorage',
function ($http, $localStorage, tokenStorage) {
// THIS IS EXECUTING VERY WELL
return {
signin: function(data, success, error) {
$http.post(
'http://myweb.com/api' + '/login',
data
).success(function (result, status, headers) {
console.log("logueado");
}).error(function (data, status, headers, config) {
console.log("error. " + data);
})
}
};
}]);
Лучше, если вместо того, чтобы передавать метод обратного вызова, вы позволяете своему методу подписи вернуть обещание, а затем использовать его в контроллере. –
Я собираюсь сделать это, как только закончу задачу в своей работе, большое спасибо @AbhishekJain – RicardoGonzales