Я потратил часы, пытаясь понять это и просматривать в Интернете, но я должен делать что-то неправильно. Каждый раз, когда я загружаю страницу, она просто пустая. Я пытаюсь загрузить базу данных из mysqli в angularjs. Код скопирован точно из упражнений W3, поэтому я понятия не имею, где проблема.Не могу понять, почему AngularJS не читает JSON из PHP
dbaseread.php находится в той же папке, что и html.
PHP:
$query = "SELECT * FROM members";
$result = $mysqli->query($query);
$r = array();
if($result->num_rows>0){
while($row = $result->fetch_assoc()){
$r[] = $row;
}
}
$res = json_encode($r);
header('Content-Type: application/json');
echo $res;
HTML
<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="customersCtrl">
<ul>
<li ng-repeat="x in myData">
{{ x.name }}
</li>
</ul>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
$http.get("dbaseread.php").then(function (response) {
$scope.myData = response.data.records;
});
});
</script>
</body>
</html>
попробуйте декодировать ответ, прежде чем использовать его ... я знаю, что звучит странно, просто попробуйте ... json_decode ($ response, true); Я работаю с json-файлами в последние несколько дней, когда мой JS отказывается читать его, если я не сначала его декодирую, а используйте истинный параметр – TheHidden
try '$ scope.myData = response.data'. Не похоже на какое-либо свойство 'records' в php. Внутри 'then' может помещаться' console.log (response.data) ', а затем искать в консоли браузера то, что на самом деле возвращается – charlietfl
@silverpenguin, который предназначен для декодирования, а не для кодирования – charlietfl