访问状态响应

时间:2015-03-06 15:11:15

标签: javascript angularjs

使用AngularJS我无法在错误回调中访问http状态,因为它会直接跳到最后一个其他块。

我做错了什么,我该怎么做?

UserService.login($scope.credentials).$promise.then(
                // success callback
                function (data) {
                    var chars = CharacterService.getUser({name: data.username});
                    $rootScope.user = User.build(data, chars);

                    $timeout(function () {
                        $state.go('sheet');
                    });
                },
                // error callback
                function (data, status) {
                    if (status == 404) {
                        $scope.invalidUser = true;
                        $scope.credentials = {};
                    }
                    else if (status == 401) {
                        $scope.invalidPass = true;
                        $scope.credentials = {};
                    }
                    else {
                        alert(status);
                    }
                }
            );

1 个答案:

答案 0 :(得分:2)

好的,我已经找到了你的问题。如果您没有使用.then(),那么您所写的内容将起作用,而.success会返回一个新的承诺。

如果您使用了.errordata,那么您的代码就可以使用。

在您的情况下,您需要的所有值都在第一个function (data) { if (data.status == 404) { $scope.invalidUser = true; $scope.credentials = {}; } else if (data.status == 401) { $scope.invalidPass = true; $scope.credentials = {}; } else { alert(data.status); } } 参数中,因此您只需要更改为:

{{1}}

Fiddle