У меня есть данные JSON из базы данных:
{"пользователь": "Роб", {"пользователь": "Джон", {"пользователь": "Крис" и т.д. и т.д.
Я использую Angular, чтобы получить JSON и поместить его в таблицу HTML.
<table>
<tr>
<th>Username:</th>
</tr>
<tr ng-repeat="x in names">
<td>{{ x.user}}</td>
Используя следующий скрипт:
<script>
arudate.controller('customersCtrl', function($scope, $http) {
$http.get("sqlTest.php")
.success(function (response) {$scope.names = response.records;});
});
</script>
Но я ничего не получаю, как в JSON, хотя он отображается как полученный в sqlTest.php
Может ли кто-нибудь предложить какую-либо помощь или устранить неполадки, пожалуйста?
Вы только показываете верхнюю часть таблицы html - можем ли мы предположить, что у вас есть полная структура таблицы здесь?
<table>
<tr>
<th>Username:</th>
</tr>
<tr ng-repeat="x in names">
<td>{{ x.user}}</td>
</tr>
</table>
Это также делает намного более четкий код, если вы используете единственную форму своих массивов для имени итератора, например "имя в именах" вместо "x в именах", и в этом случае вы получаете массив людей или пользователей и показывая их имена, поэтому я бы предложил следующее:
<table>
<tr>
<th>Username:</th>
</tr>
<tr ng-repeat="user in users">
<td>{{user.name}}</td>
</tr>
</table>
Я не совсем уверен, как выглядят ваши данные, но если вы получаете список пользователей, он должен быть структурирован примерно так:
[
{
"name": "Bob"
},
{
"name": "John"
},
{
"name": "Chris"
}
]
Попробуйте сохранить свой json файл в виде текста и загрузить его из файловой системы сначала перед извлечением из источника данных/базы данных в реальном времени и сначала передать json файл через http://jsonlint.com, чтобы убедиться, что он действителен. Таким образом, вы устраняете неполадки только в своем коде, а также в случае неправильного формата данных и службы данных, которые могут или не всегда быть отзывчивыми.
Убедитесь, что ваш скрипт sqlTest.php
устанавливает правильный ответ Content-Type
в application/json
. В противном случае угловой не знал бы, чтобы автоматически обрабатывать ответ. Если ваш серверный сценарий не возвращает правильные заголовки, вам может понадобиться вручную проанализировать ответ на объект javascript:
$http.get('sqlTest.php').success(function (response) {
$scope.names = JSON.parse(response).records;
});
Также убедитесь, что ваш JSON выглядит так:
{
"records": [
{ "user": "Bob" },
{ "user": "John" },
{ "user": "Chris" },
...
]
}
Еще одна вещь, на которую вы должны обратить внимание - это консоль панели инструментов разработчика веб-браузера для любых возможных ошибок.