2017-03-01 6 views
0

グローバル変数として$scope.participants = []があります。私の問題は、以下の関数を呼び出した後、別の関数でこの変数を使用したときです。 $scope.participantsは空です。しかし、私がresponse.dataをチェックしたときではありません。

$scope.getParticipants = function(seminar_id,seminar_name,seminar_code) { 
    $http({ 
     method: 'GET', 
     dataType: 'JSON', 
     params: { 'seminar_id' : seminar_id }, 
     url: 'getParticipants' 
     }).then(function(response) { 
      $scope.participants=response.data; 
     }); 
    } 
+0

コンソールのエラーが表示されます – Sajeetharan

+0

'$ http'は非同期呼び出しです。 '$ http'がデータを返す前に' $ scope.participants'は空です。 –

+0

これで問題が解決するかどうかを確認してください。 http://stackoverflow.com/questions/18421830/how-to-wait-till-the-response-comes-from-the-http-request-in-angularjs –

答えて

0

あなたは、あなたの約束を決意するまで待つ必要がある、この作業plnkrをチェックアウトすることができます。

$scope.getParticipants= function(seminar_id,seminar_name,seminar_code){ 
$http({ 
    method: 'GET', 
    dataType: 'JSON', 
    params: { 'seminar_id' : seminar_id }, 
    url: 'getParticipants' 
    }).then(function(response) { 
     $scope.participants=response.data; 
     $scope.callBack(); 
     console.log(response.data); 
    }); 
} 
$scope.getParticipants('a','b','c'); 
+0

1秒で完了するという不安はありません –

+0

私もこれを試しましたが、1秒で完了しませんでした。 – dan

+0

非同期呼び出しの完了時にスコープ内の一部の関数呼び出しに通知するためにコールバックが追加されました。確認してください[plnkr](https://plnkr.co/edit/ATlhJvXgW3K0JVMqQCJm?p=preview) –

関連する問題