2016-03-21 8 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()"も成功しています。ログインコールバックは "$ scope。$ emit"を期待通りに実行しますが、 "User.me()"のコールバックは "$ scope。$ emit"をディスパッチしません。 –

+0

愚かな質問かもしれませんが、どこでコールバック関数を呼び出しますか? – olysachok

答えて

0

代わりに$scope.$broadcastを使用してください。

+0

既に、それは動作しませんでした –

関連する問題