Ошибка привязки данных к Dom

0

Я добавляю response.data в $ scope.studentData, но все еще не показываюсь в DOM, до этого я получал angular.js: 13550 Ошибка: [ngRepeat: dupes], поэтому я добавил трек по индексу $, который удалил ошибку, но все еще я не могу видеть данные в ng-repeat, также, когда я нахожусь в этом частичном представлении шаблона, 2 вызова Xhr, чтобы получить данные с php, я был бы полезен, если бы мог помочь мне удалить эти ошибки. Спасибо заранее, новый угловой пожалуйста, помогите,

app.controller("studentscontroller",function($scope,$http){
var st = [];
$http.get("php/studentdata.php")
.then(function(response){
//console.log(response.data);
$scope.studentData=response.data;
})
})

<tbody>
<tr ng-repeat="student in studentData track by $index">
<td>{{student.id}}</td>
<td>{{student.name}}</td>
</tr>
</tbody>


**php **
<?php

include("../php/dbconnect.php");
$datarcv = file_get_contents("php://input");
$data = json_decode($datarcv);
//$id = $data->id;
$query = "select * from student ";
$exe =mysqli_query($link,$query);
$send=array();
$len = mysqli_num_rows($exe);
//echo $len;
while($row = mysqli_fetch_array($exe))
{
$send = array('id'=>$row['sid'],'name'=>$row['sname']);
}
echo json_encode($send);
?
}
  • 0
    Пожалуйста, начните с чтения минимального воспроизводимого примера раздела.
  • 0
    мы не можем устранить неисправность кода, который не видим. Опубликовать соответствующий код вместе с примером данных из API
Показать ещё 2 комментария
Теги:

2 ответа

0

Запрос GET не имеет тела, поэтому нет file_get_contents("php://input") и поскольку вы не проверяете его, вероятно, вы получаете исключение, вызванное попыткой json_decode().

Я предполагаю, что ваш вывод ошибки возвращается, а затем передается в ng-repeat как ничто иное, как строка... не массив, как вы ожидаете.

Кроме того, вы переписываете $send на каждую итерацию while и отправляете только один объект, представляющий последнюю строку... не массив объектов, представляющих все строки.

Исправьте проблему с массивом, изменив:

$send = array('id'=>$row['sid'],'name'=>$row['sname']);

к

$send[] = array('id'=>$row['sid'],'name'=>$row['sname']);

Кроме того, вы должны использовать ваши инструменты для браузера, чтобы проверить, что сервер действительно отправляет вам

  • 0
    Сэр, теперь я изменился, как вы упомянули, да, я пропустил эти скобки, спасибо, но я все еще не могу связать данные с представлением. Я возвращаю объект, но я ничего не вижу
  • 0
    Большое спасибо, сэр, проблема решена, я изменил php, но я пропустил изменение объекта scope в ng repeat, для которого я не получал данные, теперь он работает нормально, спасибо, одну секунду,
0

Кажется, что вы пытаетесь использовать ng-repeat для отображения данных, но он не отображается в представлении. Во-первых, убедитесь, что вы используете область правильного контроллера. для этого попробуйте показать данные в представлении ng-bind="studentData". если ng-bind работает, проблема возникает из ng-repeat: для исправления этой проблемы используйте $ scope. model.studentData вместо $ scope.studentData. Если ng-bind все еще не работает, это означает, что вы используете неправильный контроллер.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню