Angular не отображает данные json на экране - Angular 1.6.9

У меня есть файл php, и он работает для анализа данных из mysql в формате json вот результат, который я получаю,

"{\"records\":[{\"EmpName\":\"Justin\",\"EmpAddress\":\"New York\",
\"emp_email\":\"[email protected]\"},{\"EmpName\":\"Mark\",\"EmpAddress
\":\"Canada\",\"emp_email\":\"[email protected]\"},{\"EmpName\":\"Sachin
\",\"EmpAddress\":\"India\",\"emp_email\":\"[email protected]
\"},{\"EmpName\":\"Rachel\",\"EmpAddress\":\"Australia\",\"emp_email
\":\"[email protected]\"},{\"EmpName\":\"John\",\"EmpAddress
\":\"Russia\",\"emp_email\":\"[email protected]\"}]}"

Это мой угловой код

<script>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {

        <?php $url = '"' . $url . '/customers_mysql.php"';
        ?>
    console.info(<?php echo $url; ?>);
        $http.get(<?php echo $url; ?>)  
        .then(function(response) {
        console.info("test");
        console.info(response.data); 
        $scope.names = response.data.records;

    });

}); 

Это мой контроллер в моем html файле

<div ng-app = "myApp" ng-controller = "customersCtrl">

<table>
  <tr ng-repeat = "x in names">
    <td>{{x.EmpName}}</td>
    <td>{{x.EmpAddress}}</td>
      <td>{{x.emp_email}}</td> 
  </tr>
</table>

</div>

Я не вижу никаких данных на экране или сообщений об ошибках в консоли. Я вижу, что json показывает данные в порядке, используя console.info (response.data); Он отображается в консоли, но angular не отображает данные на странице? Есть идеи, почему он не анализирует данные? Это из-за записей перед json? Я попытался удалить также «записи:» перед json, но тогда он тоже не отображается.

Обновлено: Это в моем файле php для анализа данных из массива в json

$outp = "";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "") {$outp .= ",";}
    $outp .= '{"EmpName":"'  . $rs["EmpName"] . '",';
    $outp .= '"EmpAddress":"'   . $rs["EmpAddress"]        . '",';
    $outp .= '"emp_email":"'. $rs["emp_email"]     . '"}';
}
$outp ='{"records":['.$outp.']}';
$mysqli->close();




echo json_encode($outp);

Имеет ли фактический вывод php внешние кавычки, как показано? Если да, то не должно и то, как они добавляются, подозрительно.

charlietfl 08.04.2018 21:38

Ваш response.data интерпретируется как json? Если Вы можете разместить где-нибудь снимок экрана console.info (response.data)? Я думаю, ваша строка может не анализироваться как json, а вместо этого интерпретироваться как строка

Jakub Judas 08.04.2018 21:42

это мои данные ответа в консоли oi66.tinypic.com/zjb7fd.jpg

Tom Jacobs 08.04.2018 21:44

Не создавайте JSON вручную ... это много лишней работы и подвержено ошибкам. Создайте массив php с данными, и как только он будет создан, используйте echo json_encode($data);. См. json_encode () документы

charlietfl 08.04.2018 21:45

@charlietfl добавил часть моего php-кода, который мне нужно получить из базы данных, у меня есть json-код в конце

Tom Jacobs 08.04.2018 21:48

также установите json следующим образом в заголовке файла php (Content-Type: application / json);

Tom Jacobs 08.04.2018 21:54
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
179
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы дважды кодируете json. json_encode выполняет кодировку за вас, вам просто нужно заполнить массив. Попробуйте что-нибудь вроде

$outp = [];
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    $outp [] = ["EmpName"=>$rs["EmpName"],
                "EmpAddress" => $rs["EmpAddress"],
                "emp_email" => $rs["emp_email"]];
}

$mysqli->close();
echo json_encode(["records" => $outp]);

Спасибо! Вот так это работает :-) Так что всегда лучше хранить сначала в массиве php, а затем закодировать слова. Intersting, чтобы знать!

Tom Jacobs 08.04.2018 21:58

@TomJacobs Рад, что это помогло

Jakub Judas 08.04.2018 22:02

Вы сами создаете строку json в php, тогда как вам нужно просто создать массив. Затем вы json_encode массив, а не строку

Попробуйте изменить на:

$outp = array("records" => array());

while ($rs = $result - > fetch_array(MYSQLI_ASSOC)) {

  $outp["records"][] = array(
    "EmpName" => $rs["EmpName"],
    "EmpAddress" => $rs["EmpAddress"],
    "emp_email" => $rs["emp_email"]
  );
}

$mysqli - > close();

echo json_encode($outp);

Спасибо, похоже на ответ Якуба Иуды. Он работает с вышеуказанным решением. Спасибо за помощь!

Tom Jacobs 08.04.2018 22:01

Верно ... но мои усилия и вопросы привели к фактической проблеме, которая не была очевидна в исходном коде, который был показан. Запомни

charlietfl 08.04.2018 22:08

будет ли этот код отлично работать в Angular 2? Или нужно что-то менять?

Tom Jacobs 13.04.2018 10:05

То, как вы отправляете json из серверной части, не имеет ничего общего с тем фреймворком, который вы используете во внешней части.

charlietfl 13.04.2018 15:15

Другие вопросы по теме