2017-08-30 181 views
1

我想排序对象数组(鞋)尺寸部分的数组。 orderBy过滤器不起作用。我得到的大小以随机顺序显示。AngularJS:过滤orderBy不工作

<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> 

这里的console.log enter image description here

的屏幕抓取我也试过在引号中的排序依据过滤器( '大小')。它仍然不起作用。我不知道我错过了什么。 谢谢。

+1

你可以发布json而不是图片 – Sajeetharan

回答

0

我想通了。我不得不考虑浮点数,所以我在控制器中创建了一个自定义函数来对它进行排序

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

我写了split作为自定义过滤器。希望这会帮助你。

<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; 
     } 
    } 
});