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. 異步調用角js
- 2. 角色js異步調用MVC控制器不是異步
- 3. 異步調用後ListView不更新
- 4. 節點js異步調用
- 5. 角度工廠異步調用 - 更新控制器?
- 6. 異步調用更新HTML元素,雖然角4.x服務
- 7. 角JS GUI不更新
- 8. 角JS視圖不更新
- 9. 異步WebMethod調用後更新UI
- 10. angularjs:異步調用後視圖數據不會更新
- 11. 異步更新
- 12. android異步不更新listview?
- 13. 使用異步js的異步並行調用llin
- 14. 異步調用不刷新表
- 15. 角JS不更新或重新繪製
- 16. 如何使角度異步調用同步調用?
- 17. ClickOnce異步更新不起作用
- 18. 用異步更新圖像
- 19. Spark用於異步更新。
- 20. 異步回調後Angular2 ngModel未更新
- 21. 角JS異步兩個API請求
- 22. 節點JS - 數據庫調用異步?
- 23. javascript express js通過異步調用
- 24. 處理異步http調用節點js
- 25. 節點JS異步數據庫調用
- 26. JS調用嵌套的異步函數
- 27. JS異步調用凍結css3動畫
- 28. 異步調用的SpiderMonkey JS引擎
- 29. 量角器異步調用問題
- 30. 異步TaskUI更新
首先檢查你正在從JSON你越來越響應和檢查瀏覽器控制檯,如果你得到任何錯誤的任何數據。您還可以調試您的Angular代碼以檢查響應的值是多少 – user3045179
可能的重複[如何從異步調用返回響應?](http://stackoverflow.com/questions/14220321/how-do-i -return-the-a-response-from-an-asynchronous-call)由於'response'只在異步請求完成後纔可用,所以不能在'console.log'中出現。 –