app.controller('tableController', function ($scope, $filter, ngTableParams,$http){
$scope.users = [];
$http.get("getjsondata").success(function (response) {
$scope.users = response; //ajax request to fetch data into $scope.data
});
console.log($scope.users); // I am not getting the updated value as
// I need to pass this value in another function
});
1
A
答えて
1
console.log
声明のようなコールバック
を使用すると、HTTPリクエストを発行した直後に実行されます。
あなたはそれが/あなたの成功コールバックにそれと対話ログインする必要があります。
$http.get("getjsondata").success(function (response) {
$scope.users = response;
console.log($scope.users);
});
また、コントローラに$scope
を使用しないでください。 John Papa's style guide for Angular.js
3
成功関数が呼び出しが完了した後は、値を表示したい場合は、他の関数を呼び出したり、内部の任意の値を渡す必要がありますコールバックです
$scope.users = [];
$http.get("getjsondata").success(function (response) {
$scope.users = response;
console.log($scope.users);
});
1
あなたのログメッセージは成功の約束の外に書かれており、実行されている可能性がありますあなたの割り当て前に。次のことを試してみてください。
$scope.users = [];
$http.get("getjsondata").success(function (response) {
$scope.users = response;
console.log($scope.users);
});
約束を忘れてはいけない非同期であり、そのように彼らは、後にconsole.log文の後に来ているものは何でもより実行されますを意味します。
1
console.log($scope.users);
は$http.get().success()
が実行される前に呼び出されるためです。
$http.get()
は約束を返します。
あなたがそのようにこれをデバッグすることができます。
$http.get("getjsondata").success(function (response) {
console.log('i am after the promise return')
$scope.users = response; //ajax request to fetch data into $scope.data
});
console.log('i get executed first');
console.log($scope.users);
+0
この問題を簡単な方法で理解できるように、ありがとうございます。今私は最初に実行される文の実際の処理、なぜ非同期呼び出しのために実際に値を表示していないのかを理解しています。 – manish
関連する問題
- 1. 角度 - HttpInterceptor +非同期呼び出し
- 2. 非同期の角度/ノード$スコープの呼び出し
- 3. 非同期呼び出し後のコールタスクメソッド
- 4. JavaScript ES6非同期呼び出し後の呼び出し
- 5. RxSwiftを使用した非同期API呼び出し後のビューの更新
- 6. 非同期呼び出し後にモーダルを実行しました
- 7. 角度非同期検出の変更
- 8. 角度2非同期パイプがObservableで新しい値を表示しない
- 9. WCF非同期呼び出しが遅い、同期呼び出し高速
- 10. 非同期呼び出し内の非同期呼び出しが実行されない
- 11. 非同期呼び出し
- 12. 続行非同期呼び出しされていない
- 13. Swift:forループの非同期呼び出し
- 14. Pythonでの同期呼び出しへの非同期呼び出し
- 15. 各角度で同期してコール関数を呼び出す
- 16. ノードAWS APIを使用したJS非同期呼び出し
- 17. C#EndInvokeを使用しない非同期呼び出し?
- 18. 非同期Java Webサービス呼び出しの呼び出し
- 19. Android:非同期呼び出しを使用してアクセス権を更新する
- 20. 角度サービスへの非同期呼び出しが完了した後にコントローラをコールします。
- 21. 角度jsの非同期呼び出しを理解するのに役立つ必要があります
- 22. 非同期呼び出しを行わないCommonJSモジュールローダー
- 23. 非同期メソッド呼び出しのテスト
- 24. のstd ::非同期呼び出し
- 25. C#非同期呼び出しのタイムアウト
- 26. 非同期呼び出しでのハンドルリダイレクト
- 27. Prism.Formsの非同期呼び出し
- 28. UIViewControllerと非同期の呼び出し
- 29. 非同期Ajax呼び出しのテスト
- 30. $ httpリクエストの非同期呼び出し
最初のチェック、あなたはすべてのエラーを取得している場合は、応答やチェックブラウザコンソールで取得しているJSONから任意のデータを取得している場合。角度コードをデバッグして、応答の値が何であるかを確認することもできます – user3045179
[非同期呼び出しからの応答を返すにはどうすればよいですか?](http://stackoverflow.com/questions/14220321/how-do-i -return-the-as-asynchronous-call) 'response'は非同期要求が完了した後にのみ利用可能であるため、' console.log'をそこに置くことはできません。 –