2017-08-30 6 views
1

Ich versuche, ein Array von Größen Teil eines Objektarrays (Schuhe) zu sortieren. Der orderBy-Filter funktioniert nicht. Ich bekomme die Größen in zufälliger Reihenfolge angezeigt.AngularJS: filter orderBy funktioniert nicht

<div class="choice" ng-repeat="store in pc.stores track by $index"> 
    <div class="sizes" <span ng-repeat="size in store.shoes[0].sizes | orderBy:size track by $index">{{size}}</span></div> 
</div> 

Hier ist der Bildschirm Grab von console.log enter image description here

ich auch in Anführungszeichen den orderBy Filter versucht haben ('Größe'). Es funktioniert immer noch nicht. Ich weiß nicht, was ich vermisse. Danke.

+1

können Sie den JSON anstelle von Bild posten – Sajeetharan

Antwort

0

Ich fand es heraus. Ich musste auch Float-Nummern berücksichtigen, so dass ich eine benutzerdefinierte Funktion in der Steuerung zum Sortieren

   self.size = function (size) { 
       var val = parseFloat(size); 
       return isNaN(val) ? size : val; 
      }; 
0

Ich habe Split als benutzerdefinierte Filter geschrieben. Hoffe das wird dir helfen.

<div class="choice" ng-repeat="store in pc.stores track by $index"> 
    <div class="sizes" <span ng-repeat="size in store.shoes[0].sizes | split track by $index">{{size}}</span></div> 
</div> 



angular.module('test').filter('split', function() { 
    return function (input, delimiter) { 
     if (input != undefined) { 
      var delimiter = delimiter || ','; 
      var d=input.split(delimiter); 
      var out=[]; 
      for(var i=0;i< d.length;i++) 
      { 
       for(var j=1;j<= d.length ; j++) 
       { 
        if(d[i] < d[j]) 
        { 
         out.push(d[i]); 
        }else{ 
         out.push(d[j]); 
        } 
       } 
      } 

      return out; 
     } 
    } 
}); 
Verwandte Themen