AngularJS - 成功返回$ http.post

时间:2015-02-12 11:18:50

标签: 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(function(data){
    console.log($scope.myData) //0
    $scope.myData = data;
    console.log($scope.myData); // 1
}

OLD:我如何将数据传递给myData? - 感谢您的回答,对不起,如果我没有解释清楚。

但现在,在html中,{{myData}}我能写些什么?

我不知道它是否是基础,但我必须使用“ng-if”来使用“myData”..

编辑:谢谢!我想我已经解决了! :d

2 个答案:

答案 0 :(得分:7)

通常在您的服务中,您将返回承诺

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);
}

答案 1 :(得分:2)

你应该这样做:

.success(function(data){
    $scope.myData = data;
    //OR
    myCallback(data);
    console.log(data) //data = 1 (server works);
}

你不能在发布后调用之后立即进行分配,因为调用是异步的,你无法预测它将返回的确切时刻。

我使用了$scope,因为通常您可以通过可用范围的控制器上的服务来使用它。否则,您可以在回调中使用函数