Я добавляю 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);
?
}
Запрос 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']);
Кроме того, вы должны использовать ваши инструменты для браузера, чтобы проверить, что сервер действительно отправляет вам
Кажется, что вы пытаетесь использовать ng-repeat для отображения данных, но он не отображается в представлении. Во-первых, убедитесь, что вы используете область правильного контроллера. для этого попробуйте показать данные в представлении ng-bind="studentData"
. если ng-bind работает, проблема возникает из ng-repeat: для исправления этой проблемы используйте $ scope. model.studentData вместо $ scope.studentData. Если ng-bind все еще не работает, это означает, что вы используете неправильный контроллер.