有下面的代碼:AngularJS無極錯誤捕獲
angular.module('app.services', []).factory('authService', [
'SIGN_IN_ENDPOINT', 'SIGN_OUT_ENDPOINT', '$http', '$cookieStore', function(SIGN_IN_ENDPOINT, SIGN_OUT_ENDPOINT, $http, $cookieStore) {
var auth;
auth = {};
auth.signIn = function(credentials) {
return $http.post(SIGN_IN_ENDPOINT, {
user: credentials
}).then(function(response, status) {
return $cookieStore.put('user', response.data);
}, function(error) {
return console.log("Incorrect email/password");
});
};
return auth;
}
這是我的認證模塊。現在,我有以下功能控制器:
angular.module('app.admin.controllers', []).controller('SignInController', [
'$scope', 'authService', '$state', function($scope, authService, $state) {
$scope.buttonText = "Login";
return $scope.login = function() {
$scope.buttonText = "Logging in. . .";
return authService.signIn($scope.credentials).then(function(response, status) {
return $state.go('allPosts');
}, function(err) {
$scope.invalidLogin = true;
return $scope.buttonText = "Login";
});
};
}
的問題:如果我輸入錯誤的電子郵件/密碼,我等了2個錯誤回調 - 從第二個從第一「然後」,但我趕上第一個錯誤回調(我可以看到控制檯日誌),然後執行成功回調! (返回$ state.go('allPosts'))。爲什麼?來自服務器的響應是401錯誤。
好的,謝謝。但爲什麼我不需要將成功「泡」到更高的層次呢?我應該只爲了錯誤嗎?謝謝。 – malcoauri 2014-11-25 08:44:05
通過在其中一個回調中返回一個值,您基本上可以取得成功 – 2014-11-25 09:24:17
您可以添加指向文檔的鏈接嗎? – malcoauri 2014-11-25 12:23:36