我正在尝试根据表格TH来订购我的商品。
示例TH:
<th>ID <a ng-click="sort_by('productID');">
<i class="glyphicon glyphicon-sort"></i></a></th>
示例行:
<tr ng-repeat="data in filtered = (list | filter:search | filter:{manufacturer:by_manufac} | filter:byRange(priceInfo.min, priceInfo.max) | orderBy : predicate :reverse) | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit " ng-class="{'danger': data.errorStatus=='error'}">
示例列:
<td ng-class='{red : data.Locked==1}'><center>{{data.productID}}</center></td>
问题是结果排序很奇怪。我有586行,ID范围从4到1059(每页50个产品)。
startFrom过滤器:
app.filter('startFrom', function() {
return function(input, start) {
if(input) {
start = +start; //parse to int
return input.slice(start);
}
return [];
}
});
sort_by:
$scope.sort_by = function(predicate) {
$scope.predicate = predicate;
$scope.reverse = !$scope.reverse;
};
当我点击排序图标时,首先列出数字998。当我再次点击它时,首先列出1000。数字4,永远不会显示。任何想法为什么?
谢谢!
答案 0 :(得分:0)
请尝试使用angular-toArrayFilter,可能会解决您的问题。 http://ngmodules.org/modules/angular-toArrayFilter
答案 1 :(得分:0)
是。看起来这些值(即使作为INT存储在DB中,也必须转换为int,以便对数字进行排序。现在它正常工作。
就我而言,我使用PHP通过$http.get('ajax/getItems.php').success(function(data){...}
在我的PHP文件中: 我添加了行:
{
$row["productID"] = intval($row["productID"]);
}
现在,此行的值被强制为INT。