2014-11-21 138 views
0

这我的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(); 
} 


?> 

和此我的控制器从PHP检索JSON数据到角

function ProductListCtrl($http) 
{ 

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

} 

警报消息是[对象的对象,.. 。],我如何检索从PHP的JSON数据?

+2

如果你想将它作为提醒你可能想'JSON.stringify(数据)'一个字符串,它是JSON对象。否则,在你的代码中,你应该只能访问属性(即data.foo.bar) – nerdwaller 2014-11-21 18:31:09

+0

问题是我认为'$ http.get'不能检索json数据,出于某种原因从php脚本。 – user1658429 2014-11-21 18:48:33

+0

这就是为什么我有一个解决方案来检查,如果它没有成功,它将是空的,一个空数组或空警告对象。另一种简单的检查方法是运行'curl http:// host:port/path' – nerdwaller 2014-11-21 20:31:24

回答

0

$ http.get做工精细用JSON 我建议你再validate您的JSON和测试 我创建了一个简单的例子,你用$ HTTP和NG-重复

<!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

0

我解决了problem.The错误是this.product

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




    } 

}());