2016-10-11 3 views
0

Ich habe ein Problem, die Nachricht an einen Benutzer zu zeigen, nachdem die Ausnahme ausgelöst wurde. Was ich mache, versucht, mich als nicht aufregenden Benutzer einzuloggen. Server in diesem Fall gibt mir 401 und Meldung „Falscher Benutzername und Passwort-Kombination“Fehlermeldung wird nicht auf der Benutzerseite in AngularJs angezeigt

In meinem Controller Ich bin Vorformen dies:

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; 

Wenn Funktion isAuthenticated() ist gut vorgeformten und Token sind in der Antwort, als geben dieses Token an einen Benutzer. Wenn eine Ausnahme auftritt, gehen Sie in catch block und schreiben Sie eine Nachricht auf die Seite clients.

I ng-wenn für diese bin mit:

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

Aber Nachricht wird nie angezeigt. Wenn ich versuche, die Nachricht aus einer Ausnahme zu melden, kann ich sie deutlich sehen, aber auf der Benutzerseite gibt es keine Fehlermeldung. Sieht jemand, was ich hier falsch mache?

Antwort

0

Sind Sie sicher, dass Sie Ihren Controller wie ng-controller="MyCtrl as self" binden? Das ist wichtig für die Verwendung von Vorlagen.

Verwandte Themen