我以前已经在静态数据中使用了ngTable,它运行良好(列表、排序和过滤)。我使用的是ngTable v0.8.3
我的目标
这一次,我希望使用从加载的数据创建一个ngTable。我创建了一个定制工厂,以便能够与未来的其他实体一起创建我的ngTable。
问题
它不工作,我没有JS控制台错误。调试时,可以清楚地看到,服务员工的方法查询将返回包含员工详细信息的完整和正确的objet。我输入getData()函数,正在创建ngTable,但使用的是空数据。
相关和轻量级代码
以下是我的HTML标记:
<table ng-table="tableParams" class="table table-striped" show-filter="true">
<tbody>
<tr ng-repeat="employee in $data">
<td data-title="'employee.firstname' | translate" filter="{'firstname' : 'text'}" sortable="'firstname'"><a ui-sref="employee.detail({id:employee.id})">{{employee.firstname}}</a></td>
<td data-title="'employee.lastname' | translate" filter="{lastname : 'text'}" sortable="'lastname'">{{employee.lastname}}</td>
<td data-title="'employee.mail' | translate" filter="{mail : 'text'}" sortable="'mail'">{{employee.mail}}</td>
<td data-title="'employee.phone-number' | translate" filter="{phone_number : 'text'}" sortable="'phone_number'">{{employee.phone_number}}</td>
<td data-title="'employee.birthdate' | translate" filter="{birthdate : 'text'}" sortable="'birthdate'">{{employee.birthdate}}</td>
</tr>
</tbody></table>我的角度控制器:
myapp.controller('EmployeeController', function ($rootScope, $scope, Employee, ngTableParams, ngTableFactory) {
$scope.tableParams = ngTableFactory.create(20, {lastname: 'asc'}); // count, sorting
});我的角质工厂:
myapp.factory('ngTableFactory', function(ngTableParams, Employee) {
return {
create: function(count, sorting) {
return new ngTableParams({
page: 1, // initial page
count: count, // count per page
sorting: sorting // initial sorting
}, {
total: 0,
getData: function($defer, params) {
Employee.query({page: params.page(), size: params.count()}, function(result) {
$defer.resolve(result);
});
}
});
}
}
});编辑1,进度:
如果我从查询方法中删除params,则将列出我的项目,因此它对我的员工服务的处理很糟糕。但是,在默认情况下,排序和筛选器不工作在我的表上。要使排序工作,我必须在我的ngTable工厂的getData()函数中添加这一行:
result = $filter('orderBy')(result, params.orderBy());通常,基本元素的排序工作方式是在HTML模板列中添加“sortable”关键字,以及在$data项上获取数据。还在调查。
谢谢你们的帮助伙伴们!
发布于 2015-11-20 21:56:56
据我所见,你的代码可以工作。
有关工作示例(基于节点),请参见https://github.com/masa67/NgTable。我没有改变任何东西(除了填入-缺失的部分,也许问题就在那里)。
表格式不正确,但至少数据正在输入。
https://stackoverflow.com/questions/33830429
复制相似问题