我无法使用Angular $ http.get从php检索json数据

时间:2014-11-21 18:29:10

标签: php json angularjs

这是我的PHP代码

    <?php


try {
    $dbcon=new PDO('mysql:host=localhost;dbname=angular;charset=utf8',"root","");

    $dbcon->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $dbcon->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
    $query="SELECT * FROM products ";
    $sql=$dbcon->prepare($query);
    $sql->execute();
    $result=$sql->fetchAll(PDO::FETCH_OBJ);

    $json_result=json_encode($result);

    echo $json_result;

}catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}


?>

这是我的控制器角度

  function ProductListCtrl($http)
{

    $http.get('api/products.php').success(function (data) { alert(data); this.product = data; });

}

警报消息是[object Object,...],如何从php中检索json数据?

2 个答案:

答案 0 :(得分:0)

$ http.get可以正常使用JSON 我建议你{j}再次进行validate测试 我用$ http和ng-repeat

为你创建了一个简单的例子
<!doctype html>
<html ng-app="test">
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script>
    <script>
      var app = angular.module('test', []);
      app.controller('test', function($scope, $http) {
        $http.get('test.json').success(function(data){
          console.log(data);
          $scope.items = data;
        });
      });
    </script>
  </head>
  <body ng-controller="test">
    <div ng-repeat="item in items">{{item.name}}</div>
  </body>
</html>

并且json文件是

[{
  "name":"name1"
},
{
  "name":"name2"
}]

还有一个链接,可以在Plunker中观看 http://plnkr.co/edit/MN6UPg1ba1OYNFNHKMdG?p=preview

答案 1 :(得分:0)

我解决了这个问题。这个产品错误了。

(function ()
{
    "use strict";
   var app = angular.module('ProductList');
   app.controller('ProductListCtrl',['$scope','$http', ProductListCtrl]);

   function ProductListCtrl($scope, $http) {

       $http.get('api/products.php').success(function (data) { $scope.product = data; });




   }

}());