HOLEN Sie json-Daten aus php-Datei für einen Kantigen Rahmen
Ich versuche, json-Daten aus php-Datei, die in einem Winkel-controller. Im echo json_encode(pg_fetch_assoc($result));
innerhalb der php-Datei, und wenn ich console.log($scope.contents);
in das eckige-controller bringt es zurück die json-Daten, aber es kommt leer wieder zurück, wenn ich versuche und mache ein 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>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie wollen, um tatsächlich senden Sie die Daten als JSON. Um das zu tun, müssen Sie nur hinzufügen
header('Content-Type: application/json');
vor Ihrerecho
- Anweisung. So content.php wird:Nebenbei, es gibt ein paar Dinge, die Sie tun möchten, mit Ihrem controller. Ich würde das ändern:
zu diesem:
Zusätzliche
'$scope', '$http',
vor der definition einer Funktion können Sie verkleinern in die Zukunft, und die.get
ist nur eine persönliche Präferenz, aber ich denke es ist sauberer zu Lesen.