2016-06-15 11 views
0

Ich versuche, einen Winkel Service-Eigenschaft auf $ Umfang auszusetzen, es in der Ansicht sieht mein Code zu verwenden, wie dies

/**API Post SERVICE for user login*/ 
     function login(username,password){ 
      return $http.post('/api/login/',{ 
        username:username, 
        password:password 
      }).then(loginSuccessFn, loginErrorFn); 

      function loginSuccessFn(data, status, headers, config){ 
       Authentication.setAuthenticatedAccount(data.data); 

       window.location = '/'; 
      } 
      function loginErrorFn(data, status, headers,config){ 
       console.error("Epic Failure"); 
      } 
      } 

so, wenn die $ http Methode gibt Fehler und Die Funktion loginErrorFn() wird aufgerufen, die Antwortdaten, die in der Ansicht übergeben werden sollen, sodass ich eine Bootstrap-Warnung auslösen kann.

Wie kann ich dies erreichen?

+0

Sie müssen alles in ein Versprechen oder 'Q.deferred' und in Ihrem Controller tun' service(). Dann (res => $ scope.data = res)) ' –

+0

Tun Sie das nicht. [Lernen zu verwenden verspricht die richtige Art] (http://stackoverflow.com/a/23803744/548997). – Lex

Antwort

0

@Karim richtig war, nur etwas verpasst es:

, wenn Sie $ rootScope innerhalb des Service injizieren:

$rootScope.$emit('httpCall', 'success'); 
$rootScope.$emit('httpCall', 'failure'); 

und wenn Sie es das fangen:

$rootScope.$on('httpCall', function(e,p){scope.isSuccess = p;}) 

Das $ rootScope. $ On ('httpCall', Funktion (e, p) {} hat zwei Parameter

0

inject $ rootScope innerhalb des Service, emittieren die Veranstaltung im Erfolgsfall und Fehler

$rootScope.$emit('httpCall', 'success'); 
$rootScope.$emit('httpCall', 'failure'); 

und diese Veranstaltung in der

$rootScope.$on('httpCall', function(p){scope.isSuccess = p;}) 

jetzt Controller behandeln Sie in Ihrer Ansicht beziehen sollten Sie mit Ihrem Bereichsvariable isSuccess zum Anzeigen einer Warnung.

+0

können Sie bitte detaillierter im Detail @Karim –

+0

Ich tat dies und die Antwort zeigt nicht in Sicht, aber dieser Fehler: {"name": "errorLogin", "targetScope": "$ SCOPE", "defaultPrevented ": false," currentScope ": null} –

+0

kannst du mir helfen? –

Verwandte Themen