2016-03-21 6 views
0

У меня есть код для аутентификации, где я хочу вызвать событие после получения некоторых данных, но «$ scope. $ Emit» не работает в обратном вызове «User.me()», и я не понимаю.

Кто-нибудь может мне объяснить?

$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 // 
    }); 
}; 

Стараюсь:

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

Теперь, "почему" я не знаю?

+0

Действительно ли вызванный обратный вызов? Вы пытались разместить протоколирование/отладки с использованием как успешных, так и обратных вызовов? – CaringDev

+0

Идентификатор входа в систему и «User.me()» тоже. В обратном вызове login «$ scope. $ Emit» как и ожидалось, но обратный вызов «User.me()« не отправляет »$ scope. $ Emit». –

+0

Может быть, это глупый вопрос, но где вы называете функцию обратного вызова? – olysachok

ответ

0

Используйте вместо этого $scope.$broadcast.

+0

Уже, но это не сработало –

Смежные вопросы