2016-03-21 21 views
0

Ich habe einen Code zur Authentifizierung, wo ich ein Ereignis nach dem Empfang einiger Daten aufrufen möchte, aber "$ scope. $ Emit" funktioniert nicht im Rückruf von "User.me()" und ich verstehe nicht.

Jeder kann mir erklären?

$scope.login = function() { 
    OAuth.getAccessToken($scope.user).then(function() { 

     $scope.$emit('event:here:work'); 
     User.me({}, {}, function (data) { 
      $scope.$emit('event:here:NOT-WORK'); 
     }); 
     $scope.$emit('event:here:work'); 

    }, function (response) { 
     // error // 
    }); 
}; 

Ich versuche:

$scope.$emit('event');   // but, not work 
$scope.$broadcast('event');  // but, not work 
$rootScope.$emit('event');  // but, not work 
$rootScope.$broadcast('event'); // work!!!! 

Nun, das "Warum" ich weiß nicht?

+0

Wird der Callback tatsächlich aufgerufen? Haben Sie versucht, Logging/Debugging sowohl mit Erfolgs- als auch mit Fehler-Callback durchzuführen? – CaringDev

+0

Die Anmeldung ist erfolgreich und "User.me()" auch. Der Login-Callback führt "$ scope. $ Emit" wie erwartet aus, aber der Callback von "User.me()" sendet nicht "$ scope. $ Emit". –

+0

Kann eine dumme Frage sein, aber wo rufen Sie die Callback-Funktion? – olysachok

Antwort

0

Verwenden Sie stattdessen $scope.$broadcast.

+0

Schon, aber es hat nicht funktioniert –

Verwandte Themen