OBTENIR les données json à partir d'un fichier php pour une portée angulaire

J'essaie d'obtenir les données de json à partir d'un fichier php à utiliser dans un contrôleur angulaire. Je json_encode(pg_fetch_assoc($result)); écho à json_encode(pg_fetch_assoc($result)); Dans le fichier php et quand je console.log($scope.contents); Dans le contrôleur angulaire, il ramène les données json, mais il revient vide lorsque j'essaie de faire une ng-repeat

Controllers.js :

 myApp.controller('ContentCtrl', function ($scope, $http) { $http({method: 'GET', url: 'content.php'}).success(function(data) { $scope.contents = data; }); }); 

Content.php :

 <?php require_once("sdb.php"); $result = pg_query($dbconn, "SELECT * FROM content ORDER BY name ASC"); echo json_encode(pg_fetch_assoc($result)); 

Index.php :

 <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="css/style.css"/> </head> <body ng-app="myApp"> <div ng-controller="ContentCtrl"> <ul> <li ng-repeat="content in contents"> <a href="#">{{content.name}}</a> </li> </ul> </div> </body> <script src="js/jquery-1.10.2.js"></script> <script src="js/angular.min.js"></script> <script src="js/controllers.js"></script> </html> 

Vous devrez envoyer les données en tant que JSON. Pour ce faire, il vous suffit d'ajouter l'en- header('Content-Type: application/json'); Avant votre déclaration d' echo . Alors content.php devient:

 <?php require_once("sdb.php"); $result = pg_query($dbconn, "SELECT * FROM content ORDER BY name ASC"); header('Content-Type: application/json'); echo json_encode(pg_fetch_assoc($result)); 

À part, il y a quelques choses que vous voudrez faire avec votre contrôleur. Je changerais ceci:

 myApp.controller('ContentCtrl', function ($scope, $http) { $http({method: 'GET', url: 'content.php'}).success(function(data) { $scope.contents = data; }); }); 

pour ça:

 myApp.controller('ContentCtrl', ['$scope', '$http', function ($scope, $http) { $http.get('content.php') .success(function(data) { $scope.contents = data; }); }]); 

Le '$scope', '$http', supplémentaire '$scope', '$http', avant que la définition de fonction ne vous permette de minimiser à l'avenir, et le .get est juste une préférence personnelle, mais je pense qu'il est plus propre à lire.