AngularJS-返回成功$http.post

AngularJS-返回成功$http.post,angularjs,angular-http,Angularjs,Angular Http,我使用AngularJs,需要在$http.post连接后返回数据。代码如下: app.controller('PrincipalController',['$http', '$scope', function($http,$scope){ $scope.myData = 0; $http.post("server/checklogin.php", {id: "id",email: "email",password: "password"} ) .success(func

我使用AngularJs,需要在$http.post连接后返回数据。代码如下:

app.controller('PrincipalController',['$http', '$scope', function($http,$scope){
  $scope.myData = 0;
  $http.post("server/checklogin.php",
    {id: "id",email: "email",password: "password"}
  )
  .success(function(data){
    console.log($scope.myData) //0
    $scope.myData = data;
    console.log($scope.myData); // 1
}
OLD:如何将数据传递到myData中谢谢你的回答,如果我解释得不好,很抱歉

但是现在,在html中,
{{myData}}
我可以写什么

我不知道它是否是基本的,但我将不得不使用“myData”和“ng if”


编辑:谢谢!我想我已经解决了你应该这样做:

.success(function(data){
    $scope.myData = data;
    //OR
    myCallback(data);
    console.log(data) //data = 1 (server works);
}
您不能将分配放在post调用之后,因为调用是异步的,您无法预测它返回的确切时间


我使用了
$scope
,因为通常情况下,您可以通过控制器上的服务使用它,其中有一个作用域可用。否则,您可以在回调中使用函数,通常在您的服务中,您将返回承诺

myService.getCheckLogin = function {
    return $http.post("server/checklogin.php",
      {id: "id",email: "email",password: "password"}
      );
}
然后在控制器中

myService.getCheckLogin()
.success(function(data){
  $scope.myData = data;
}
.error(function(err){
  console.log(err);
}

很抱歉,我无法理解这个问题,您只需在“success”函数中执行“myData=data”,有什么问题?无论您希望对数据执行什么操作,都必须在成功中使用。由于异步的性质,您不能将其带到外部。要做您想做的事情,即以同步方式使用异步检索的数据,唯一的angularish方法是使用$resource服务,当数据从服务器返回时,该服务将填充myData变量(前提是它在$scope中)$http不立即提供此功能,您只能在回调中使用返回的数据。请不要使用
this.myData或$scope.myData
both@entre好啊但是它不起作用。。我该怎么办?不应该在.error调用之前关闭success方法的“')?