重新加载后,分页不会从 ng-repeat 加载所有数据
Pagination won't load all data from a ng-repeat after i reload
我使用 ng-repeat 显示来自数据库的所有值,使用 mysql,我在此处显示的 php 脚本中将数据转换为字符串。
<?php
require("../easyCRUD/Usuarios.class.php");
require("../easyCRUD/TipoUsuario.class.php");
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$usuario = new Usuarios();
$tipousuario = new TipoUsuario();
$usuarios = $usuario->all();
$data="";
$len = count($usuarios);
$i = 0;
foreach($usuarios as $ban){
//echo "i=".$i;
$tipousuario->find($ban['id_tipo_usuario']);
$data .= '{';
$data .= '"id_usuario":"' . $ban['id_usuario'] . '",';
$data .= '"usuario":"' . $ban['usuario'] . '",';
$data .= '"nombre":"' . $ban['nombre'] . '",';
$data .= '"apellido":"' . $ban['apellido'] . '",';
$data .= '"cedula":"' . $ban['cedula'] . '",';
$data .= '"correo":"' . $ban['correo'] . '",';
$data .= '"telefono":"' . $ban['telefono'] . '",';
$data .= '"estado":"' . $ban['estado_cliente'] . '",';
$data .= '"tipo_usuario":"' . $tipousuario->tipo_usuario. '"';
$data .= '}';
if ($i != $len - 1) {
$data .= ',';
}
$i++;
}
echo '{"records":[' . $data . ']}';
?>
然后在控制器中我将数据绑定到范围。
$scope.getAll = function(){
console.log("starto");
$http.get("procesos/read_usuario.php").success(function(response){
$scope.names = response.records;
console.log($scope.names);
console.log("finish");
});
}
并且在视图中我用 ng-repeat
显示值
<tbody ng-init="getAll()">
<tr ng-repeat="d in names | filter:search | startFrom:(currentPage - 1 )*pageSize | limitTo: pageSize">
<td class="text-align-center" >
<p class="text-center">{{ d.id_usuario }}</p>
</td>
<td>
{{d.usuario}}
</td>
<td>
<p class="text-center" >{{d.tipo_usuario}}</p>
</td>
<td>
<p class="text-center" >{{d.nombre}}</p>
</td>
<td>
<p class="text-center" >{{d.apellido}}</p>
</td>
<td>
<p class="text-center" >{{d.cedula}}</p>
</td>
<td>
<p class="text-center" >{{d.correo}}</p>
</td>
<td>
<p class="text-center" >{{d.telefono}}</p>
</td>
<td>
<p class="text-center" >{{d.estado_cliente}}</p>
</td>
<td>
<a ng-click="readOne(d.id_usuario)" class="btn btn-primary" id={{"aElement"+d.id}} >Edit</a>
<a ng-click="deleteElement(d.id_usuario)" class="btn btn-Danger">Delete</a>
</td>
</tr>
在我的控制台中它甚至可以正确显示所有数据 "usuario" 但是当我在视图中呈现它时唯一没有显示的值是 "usuario".
编辑:这似乎是分页的问题,我正在使用 angular-bootstrap 分页,如果我单击下一步,它会显示缺失值。
您正在尝试呈现 tipo_usuario
,但在您的控制台日志中 属性 被称为 usuario
。
原来是分页,我没有设置当前页的值和页面大小。
$scope.pageSize=5;
$scope.currentPage=1;
我使用 ng-repeat 显示来自数据库的所有值,使用 mysql,我在此处显示的 php 脚本中将数据转换为字符串。
<?php
require("../easyCRUD/Usuarios.class.php");
require("../easyCRUD/TipoUsuario.class.php");
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$usuario = new Usuarios();
$tipousuario = new TipoUsuario();
$usuarios = $usuario->all();
$data="";
$len = count($usuarios);
$i = 0;
foreach($usuarios as $ban){
//echo "i=".$i;
$tipousuario->find($ban['id_tipo_usuario']);
$data .= '{';
$data .= '"id_usuario":"' . $ban['id_usuario'] . '",';
$data .= '"usuario":"' . $ban['usuario'] . '",';
$data .= '"nombre":"' . $ban['nombre'] . '",';
$data .= '"apellido":"' . $ban['apellido'] . '",';
$data .= '"cedula":"' . $ban['cedula'] . '",';
$data .= '"correo":"' . $ban['correo'] . '",';
$data .= '"telefono":"' . $ban['telefono'] . '",';
$data .= '"estado":"' . $ban['estado_cliente'] . '",';
$data .= '"tipo_usuario":"' . $tipousuario->tipo_usuario. '"';
$data .= '}';
if ($i != $len - 1) {
$data .= ',';
}
$i++;
}
echo '{"records":[' . $data . ']}';
?>
然后在控制器中我将数据绑定到范围。
$scope.getAll = function(){
console.log("starto");
$http.get("procesos/read_usuario.php").success(function(response){
$scope.names = response.records;
console.log($scope.names);
console.log("finish");
});
}
并且在视图中我用 ng-repeat
显示值<tbody ng-init="getAll()">
<tr ng-repeat="d in names | filter:search | startFrom:(currentPage - 1 )*pageSize | limitTo: pageSize">
<td class="text-align-center" >
<p class="text-center">{{ d.id_usuario }}</p>
</td>
<td>
{{d.usuario}}
</td>
<td>
<p class="text-center" >{{d.tipo_usuario}}</p>
</td>
<td>
<p class="text-center" >{{d.nombre}}</p>
</td>
<td>
<p class="text-center" >{{d.apellido}}</p>
</td>
<td>
<p class="text-center" >{{d.cedula}}</p>
</td>
<td>
<p class="text-center" >{{d.correo}}</p>
</td>
<td>
<p class="text-center" >{{d.telefono}}</p>
</td>
<td>
<p class="text-center" >{{d.estado_cliente}}</p>
</td>
<td>
<a ng-click="readOne(d.id_usuario)" class="btn btn-primary" id={{"aElement"+d.id}} >Edit</a>
<a ng-click="deleteElement(d.id_usuario)" class="btn btn-Danger">Delete</a>
</td>
</tr>
在我的控制台中它甚至可以正确显示所有数据 "usuario" 但是当我在视图中呈现它时唯一没有显示的值是 "usuario".
编辑:这似乎是分页的问题,我正在使用 angular-bootstrap 分页,如果我单击下一步,它会显示缺失值。
您正在尝试呈现 tipo_usuario
,但在您的控制台日志中 属性 被称为 usuario
。
原来是分页,我没有设置当前页的值和页面大小。
$scope.pageSize=5;
$scope.currentPage=1;