Angular如何从http.post成功返回值?

时间:2013-01-29 10:25:07

标签: http post angularjs return-value

我的角度控制器中有代码

$scope.message = '';
$http.post('/save/').success(function(data) {                  
    $scope.message = "success";
});
console.log($scope.message);
//get empty string?

为什么我跑完后,我在$ scope.message上得到空字符串? http.post如何成功返回值,因为我想重用我的另一个函数的值。无论如何,谢谢。

3 个答案:

答案 0 :(得分:4)

您正在寻找的是:

$scope.$watch("message", function(value){
  console.log($scope.message);
}); 

这是a sample plnkr example我做过

答案 1 :(得分:1)

做什么 -

$scope.message = '';
$http.post('/save/').success(function(data) {                  
    $scope.message = "success";
    console.log($scope.message);
});

还是我错过了其他什么?

答案 2 :(得分:0)

  

为什么我跑完后,我在$ scope.message上得到空字符串?

当响应可用时,$http的成功回调被异步调用。这解释了为什么console.log()可以在回调之前运行。如果另一个函数需要该值,@ ShaiRez已经提供了两个解决方案:

  1. 调用成功回调中的其他函数
  2. $watch该值,并调用$ watch listener callback中的其他函数