Сообщение об ошибке не отображается на странице пользователя в AngularJS

#javascript #angularjs

#javascript #angularjs

Вопрос:

У меня проблема с отображением сообщения пользователю после возникновения исключения. Что я делаю, так это пытаюсь войти в систему как неинтересный пользователь. Сервер в этом случае возвращает мне 401 и сообщение «Неправильная комбинация имени пользователя и пароля»

В моем контроллере я готовлю это:

 class LoginOnlineUserController {
    constructor($state, AuthenticationService, LoginOnlineUserService) {
        this.$state = $state;
        this.AuthenticationService = AuthenticationService;
        this.LoginOnlineUserService = LoginOnlineUserService;

        this.username = null;
        this.password = null;
    }

    login() {
        let self = this;

        this.LoginOnlineUserService.login({
            username: this.username,
            password: this.password
        }).then(function(data) {
            self.AuthenticationService.login(data.jwtToken);

            if(self.AuthenticationService.isAuthenticated()) {
                self.$state.go("hrTesting");
            }
        }).catch(function(msg) {
            //alert(msg.data);
            self.error = msg.data;
        });
    }
}

export default LoginOnlineUserController;
  

Если функция isAuthenticated() выполнена правильно, и токен находится в ответе, передайте этот токен пользователю.
Если произойдет исключение, перейдите в блок catch и напишите сообщение на странице клиентов.

Я использую ng-if для этого:

 <div ng-if="self.error" class="alert alert-danger">{{self.error}}</div>
  

Но сообщение никогда не отображается. Когда я пытаюсь предупредить сообщение об исключении, я вижу его четко, но сообщение об ошибке не существует на странице пользователя.
Кто-нибудь видит, что я здесь делаю неправильно?

Ответ №1:

Вы уверены, что вы привязываете свой контроллер подобным ng-controller="MyCtrl as self" образом? это важно для использования внутри шаблона.