Javascript 我可以告诉ng table根据每页的项目重新分配表中的项目吗?
我是一个使用指令的有棱角的新手 TL;博士强> 是否有任何方法可以告诉ng table在表格加载完成后,根据每页的项目重新分配表格中的项目 长话短说 我有一个项目集合,包括绑定到ng表的子项目,它可以很好地进行分页和每页项目选择。我的问题是,当我尝试应用筛选器时,表会将项目保留在其原始页面上。假设我的表中有5000个项目,分布在500多页上,每个页面包含10个项目。我实现的过滤效果很好,但它会将项目保留在原始页面上,例如,如果一个STId=1826的项目最初放在第4512页,而我过滤1826,则它将保留在该页面上,即使整个集合中没有其他项目。当然,这是因为ng表已经加载,需要重新加载才能工作。但我认为,由于集合已经在客户端的内存中,因此必须有某种方法来重新分发项目 我知道有一个本机ng表过滤器函数,但我只想说,我看不出有任何方法可以使用它 我收集了一些物品:Javascript 我可以告诉ng table根据每页的项目重新分配表中的项目吗?,javascript,angularjs,filtering,ngtable,Javascript,Angularjs,Filtering,Ngtable,我是一个使用指令的有棱角的新手 TL;博士 是否有任何方法可以告诉ng table在表格加载完成后,根据每页的项目重新分配表格中的项目 长话短说 我有一个项目集合,包括绑定到ng表的子项目,它可以很好地进行分页和每页项目选择。我的问题是,当我尝试应用筛选器时,表会将项目保留在其原始页面上。假设我的表中有5000个项目,分布在500多页上,每个页面包含10个项目。我实现的过滤效果很好,但它会将项目保留在原始页面上,例如,如果一个STId=1826的项目最初放在第4512页,而我过滤1826,则它将
SigningTasks: [
{
"CS": "Init",
"STId": 6637,
"CivicNumber": "198301101997",
"Culture": {
"CultureId": 1,
"CountryCode": "SE",
"LanguageCode": "sv",
"Name": "Sverige, svenska"
},
"Status": "InitDone",
"DateCreated": "2015-06-26T13:45:13.723",
"GroupName": "Group1",
},
...
]
和表参数:
vm.tableParams = new ngTableParams({
page: 1,
count: 10,
sorting: {
DateCreated: 'desc'
}
},
{
total: vm.List.length,
counts: [10, 25, 50, 100, 250, 500, 1000],
getData: function ($defer, params) {
var filteredData = $filter('filter')(vm.List, params.filter());
params.total(filteredData.length);
var orderedData = params.sorting() ? $filter('orderBy')(filteredData, params.orderBy()) : filteredData;
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
和一张桌子:
<table ng-table="vm.tableParams">
<tr ng-repeat="task in $data | filter:vm.filterTasks(vm.CivicNumber)">
...
</tr>
</table>
vm.filterTasks = function (civicNumber) {
return function (task) {
var includeItem = true;
if (civicNumber !== null && civicNumber !== undefined && civicNumber !== "") {
includeItem = task.CivicNumber.includes(civicNumber);
}
return includeItem;
}
};