データをループするために 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()で同じエラーが発生します...それで問題はありますか?