使用ng-repeat排序数组,undefined不是一个函数

时间:2015-02-17 10:41:52

标签: javascript angularjs angularjs-ng-repeat angularjs-filter angularjs-orderby

我正在使用ng-repeat来遍历我的数据。但是我使用了一堆过滤器。其中一个是对我获得的数组进行排序的过滤器。通常我会使用' orderBy'作为angular中的默认方法。

但我需要按价格订购我的传入阵列,价格可以相同。在这种情况下,角度有时会与小问题混在一起。

因此,我编写了自己的订单过滤器:

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()">

当我重新加载网站时,我得到的错误是&#34; undefined不是一个函数&#34;指示代码行data.sort(function(a,b) {

我的过滤器有什么问题吗?我似乎不认识我的错误。

希望你能提供帮助。

注意:即使我通过命令不是过滤器而不是要应用于数据的函数来预先订购数据数组,我在data.sort()处获得了相同的错误... 这有什么问题吗?

0 个答案:

没有答案