AngularJS:过滤顺序不起作用

时间:2017-08-30 13:00:21

标签: angularjs angularjs-filter angularjs-orderby

我正在尝试对对象数组(鞋子)中的一系列大小进行排序。 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

我也在引号('size')中尝试过orderBy过滤器。它仍然无法正常工作。我不知道我错过了什么。 感谢。

2 个答案:

答案 0 :(得分:0)

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

{{1}}

答案 1 :(得分: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;
        }
    }
});