NG 表没有工作,只有 1 条记录
NG Table no works with just 1 record
我有一个关于angularJS的问题。
当数据库只有 1 条记录时,我的 ng 表不起作用。加载时 2 条或更多记录有效。
浏览器错误控制台:错误: [排序依据:非数组] http://errors.angularjs.org/1.5.0/orderBy/notarray?p0=%7B%22clienteID%22%3A...clienteNome%22%3A%22Nicolas%22%2C%22clienteConta%22%3A%229.99999999E7%22%7D 错误(本机) 在
我的网页:
<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();
};
});
感谢您的帮助
在所有情况下都需要一个数组。但是$scope.clientes = response.cliente;
$scope.clientes
设置为单个客户端。
我不完全理解你的程序逻辑。起初,您似乎从clienteService.getAllClientes()
加载,然后通过table()
调用getAll();
以再次加载clienteService.getAllClientes()
。
一个快速的解决方法是测试response.cliente
是否是一个数组,如果不是,则像$scope.clientes = [response.cliente];
一样分配它
但是,我认为您的后端应该修复为始终返回一个数组。
相关文章:
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- AngularJs对所有页面中的所有记录进行排序
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 我希望只有在我滚动页面后才能显示我的返回页首图标
- window.location替换并传递URL历史记录条目中的变量
- 为什么只有工厂在棱角分明的网站上被提及
- Javascript历史记录转换为php行
- 制作一个regex来验证只有一个数字的字符串
- 指令的模板必须只有一个根元素:With restrict E&替换true
- JavaScript,PHP-用JavaScript将多个数据库记录发送到变量或表
- 猫鼬在特定记录中查找嵌套记录
- 浏览器何时记录历史记录
- JavaScript:只有当数组中的所有项都为true时才执行函数
- 将一个表的id与另一个表中的user_id进行匹配,以获取mysql中的记录
- 更新成员数据模型中的记录列表
- 如何使用提交按钮搜索表中的记录
- NG 表没有工作,只有 1 条记录
- 为什么只有我的json数据的一部分被记录
- firebase存储中的更新记录只有在刷新页面后才可见
- 如何使只有一个记录在网格作为不可编辑使用Kendoui