我正在使用 ng-repeat 循环遍历我的数据。但是我使用了一堆过滤器来应用。其中之一是对我获得的数组进行排序的过滤器。通常我会使用'orderBy'作为角度的默认方法。
但我需要按价格订购传入的数组,价格可以相同。在那种情况下,角度有时会解决一些小问题。
因此,我编写了自己的订单过滤器:
app.filter('orderStructure',function(){
return function(data){
if(data) {
data.sort(function(a,b) {
if (a.price !== b.price) {
return a.price - b.price
}
if(a.price === b.price){
if (a.id < b.id) {
return -1;
}
if (a.id > b.id) {
return 1;
}
}
});
}return data;
};
})
此过滤器按顺序排列数据数组,并确保它按价格排序,如果两个价格相同,则按 ID(这是一个字符串)在我使用的视图中排序。
<div ng-repeat="issue in data |orderStructure | limitTo:itemsLimit()">
当我重新加载站点时,我收到“未定义不是函数”指示代码行的错误 data.sort(function(a,b) {
。
我的过滤器有什么问题吗?我只是似乎不承认我在这里的错误。
希望你能帮忙。
注意:即使我通过实现不是过滤器而是应用到数据的函数来预先订购数据数组,我也会在 data.sort() 处获得相同的错误......这有什么问题吗?