ngTables를 사용하여 AJAX 호출을 사용하여 데이터를 정렬하고 필터링하려고합니다. 현재 ng-repeat를 사용하여 데이터를 복제 할 수 있지만 정렬 기능은 적용되지 않습니다. 이 예제 http://plnkr.co/edit/zuzcma?p=info을 참조하고 mock.js 파일을 사용하여 작동하도록 만들었지 만 지금 당장 나는 내 웹 서버에로드 한 파일을 사용하고 있으며 제대로 작동하지 않는 것 같습니다.NgTable 매개 변수를 사용하여 AJAX를 통해 JSON로드
답변이 매우 간단하고 도움이된다고 확신합니다. 내 컨트롤러 및 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()));
}
});
});
getData 함수는 누군가가 순서 변경을 할 때마다 호출됩니다. 즉, 모든 정렬에서 새 데이터에 대해 ajax 호출을 수행합니다. 나는 이것이 효율적이지 않다고 생각한다. –
안녕하세요 @ michas84 - 그것은 나를 위해 잘 작동하지만 우리는 모든 열을 정렬하려는 경우 테이블 데이터를 얻기 위해 매번 서버를 호출합니다. 서버 데이터를 한 번 가져와 원하는대로 클라이언트 측에서 처리하는 개미 방법이 있습니까? –