#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"
образом? это важно для использования внутри шаблона.