我正在尝试使用 ngTables 通过 AJAX 调用对数据进行排序和过滤。目前我能够使用 ng-repeat 复制数据,但我的排序功能均不适用。我引用了这个示例http://plnkr.co/edit/zuzcma?p=info并且能够使用 mock.js 文件让它工作,但现在我使用的是我加载到我的网络服务器上的文件和我似乎无法让它工作。
我确信答案相当简单,并感谢任何帮助。我附上了我的标记,向您展示我的控制器和 html 文件的样子。谢谢大家,如果您需要更多信息,请告诉我!
以下是我引用的 API 的一些链接。
http://bazalt-cms.com/ng-table/
http://bazalt-cms.com/ng-table/example/6
HTML:
<div ng-controller="myController">
<table ng-table="tableParams" show-filter="true" class="table table-condensed">
<tr ng-repeat="user in data">
<td data-title="foo" sortable="foo">{{user.foo}}</td>
<td data-title="bar" sortable="bar">{{user.bar}}</td>
</tr>
</table>
</div>
控制器:
var app = angular.module('app', ['ngTable']);
app.controller('myController', function($scope, $http, $filter, ngTableParams) {
$http.get('http://jsondata.com/myjson.json')
.success(function(data, status) {
$scope.data = data;
});
$scope.tableParams = new ngTableParams({
page: 1, // show first page
count: 10, // count per page
sorting: {
foo: 'asc' // initial sorting
}
}, {
total: data.length, // length of data
getData: function($defer, params) {
// use build-in angular filter
var orderedData = params.sorting() ?
$filter('orderBy')(data, params.orderBy()) :
data;
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
});