2

我的角度控制器中有一个代码

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

为什么在我运行后,我在 $scope.message 上得到空字符串?成功时 http.post 如何返回值,因为我想为我的另一个函数重用该值。不管怎么说,还是要谢谢你。

4

3 回答 3

4

您正在寻找的是:

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

这是 我制作的一个示例 plnkr 示例

于 2013-01-29T11:08:53.707 回答
1

怎么办——

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

?

还是我错过了其他东西?

于 2013-01-29T10:29:05.863 回答
0

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

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

  1. 在成功回调中调用另一个函数
  2. $watch值,并在 $watch 侦听器回调中调用另一个函数
于 2013-01-29T17:10:29.470 回答