0

データをループするために ng-repeat を使用しています。ただし、適用するフィルターの束を使用します。そのうちの 1 つは、取得した配列を並べ替えるためのフィルターです。通常、角度のデフォルトの方法として「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;
    };
  })

このフィルターはデータ配列を順番に並べ、価格で並べ替えます。2 つの価格が同じ場合は、ID (文字列) で並べ替えます。ビューで使用します。

<div ng-repeat="issue in data  |orderStructure | limitTo:itemsLimit()">

サイトをリロードすると、コード行に「未定義は関数ではありません」というエラーが表示されます data.sort(function(a,b) {

私のフィルターに何か問題がありますか?ここで自分の間違いを認識していないようです。

お役に立てれば幸いです。

注:フィルターではなく、データに適用する関数を実装して、データ配列を事前に注文しても、data.sort()で同じエラーが発生します...それで問題はありますか?

4

0 に答える 0