2016-09-27 10 views
0

Ich arbeite teilweise von this Post und this Antwort.Abgelehnt Versprechen Versprechen nicht gefangen

Ich habe diese Route:

user.isAdmin sieht wie folgt aus:

isAdmin: function() { 
    return this.getProfile().then(function(data){ 
     // then return the response. 
     if(data.isadmin) { 
      return true; 
     } 
     else { 
      return $q.reject(false); 
     } 
    }); 
}, 

So weit ich das beurteilen kann, funktioniert alles bis zu diesem Punkt. isAdmin() gibt die richtige Antwort zurück, abhängig vom Benutzer.

Dinge beginnen hier schief gehen:

$rootScope.$on("$stateChangeError", function (event, current, previous, rejection) { 
    console.log("Is this thing on?"); 
}); 

Wenn .isAdmin() das Versprechen ablehnt, sollte es eine $stateChangeEror sein, nicht wahr? Aber in meinem Code passiert das nicht. Die console.log("Is this thing on?") Zeile wird nie erreicht. Keine Fehler oder irgendetwas. Die Seite wird nur normal wiedergegeben.

Ich vermute, dass ich irgendwo in einer Versprechung gefoult worden bin (das ist immer wo ich verschmutzt werde), aber ich sehe es nicht.

Irgendwelche Hilfe? Vielen Dank.

Antwort

1

fand ich das Problem:

access: function(user){return user.isAdmin()} 

Der Beitrag habe ich oben behauptet verbunden, dass ich $promise haben musste, um sicherzustellen, dass die resolve für die Funktion gewartet:

access: function(user){return user.isAdmin().$promise} 

Sollte dies gewesen es ist Versprechen, aber es scheint, dass dies nicht der Fall ist.

Verwandte Themen