【发布时间】:2016-02-24 20:53:12
【问题描述】:
我对 angularJS 有疑问。
当数据库只有 1 条记录时,我的 ng-table 不起作用。 加载 2 条或更多条记录时有效。
浏览器错误控制台: 错误:[orderBy:notarray]http://errors.angularjs.org/1.5.0/orderBy/notarray?p0=%7B%22clienteID%22%3A...clienteNome%22%3A%22Nicolas%22%2C%22clienteConta%22%3A%229.9999999E7%22%7D 在错误(本机) 在
我的 HTML:
<table ng-table="tableParams" class="table table-striped" show-filter="true">
<tr ng-repeat="cliente in data">
<td title="'ID'" filter="{ clienteID: 'number'}" sortable="'clienteID'">
{{cliente.clienteID}}
</td>
<td title="'Cliente'" filter="{ clienteNome: 'text'}" sortable="'clienteNome'">
{{cliente.clienteNome}}
</td>
<td><a ng-click="editUser(user.id)" class="btn btn-small btn-primary">Editar</a></td>
<td><a ng-click="deleteClienteById(cliente.clienteID)" class="btn btn-small btn-danger">Excluir</a></td>
</tr>
</table>
我的控制器:
angular.module('ProjetoAngularClient').controller('clienteController',
function($scope,$filter,NgTableParams,clienteService) {
clienteService.getAllClientes().success(function(response){
$scope.clientes = response.cliente;
table();
});
function getAll(){
clienteService.getAllClientes().success(function(response){
$scope.clientes = null;
$scope.clientes = response.cliente;
$scope.tableParams.reload();
});
}
function table(){
$scope.tableParams = new NgTableParams({
page: 1,
count:10
}, {
total: $scope.clientes.length,
getData: function ($defer, params) {
$scope.data = params.sorting() ? $filter('orderBy')($scope.clientes, params.orderBy()) : $scope.clientes;
$scope.data = params.filter() ? $filter('filter')($scope.data, params.filter()) : $scope.data;
$scope.data = $scope.data.slice((params.page() - 1) * params.count(), params.page() * params.count());
$defer.resolve($scope.data);
}
});
};
$scope.deleteClienteById = function(clienteID) {
clienteService.deleteClienteById(clienteID);
getAll();
};
});
感谢您的帮助
【问题讨论】:
标签: javascript java jquery html angularjs