Angularjs 角JS分拣机

Angularjs 角JS分拣机,angularjs,angular,sorting,Angularjs,Angular,Sorting,我的产品列表显示在此页面上: 并遵循此代码: <img class="col-xs-2" ng-src="{{producto.photo}}" class="img-responsive " alt="{{producto.nombre}}"> <div class="col-xs-1"> <div class="project-category"> <p><br/><br/>{{product

我的产品列表显示在此页面上:

并遵循此代码:

<img class="col-xs-2" ng-src="{{producto.photo}}" class="img-responsive " alt="{{producto.nombre}}">

<div class="col-xs-1">
    <div class="project-category">
        <p><br/><br/>{{producto.codigo}}</p>
    </div>
    <div class="project-name">
        {{producto.nombre}}<br/>
        <div ng-repeat="(key, medida) in producto.medidas"> {{key}} {{medida.alto}} x {{medida.ancho}} cm <br/></div>
    </div>
</div>



{{producto.codigo}

{{producto.nombre}}
{{key}}{{medida.alto}}x{{medida.ancho}}cm
但是我需要在这个ng repeat中使用medida.alto中的子值alto(从高到低)进行排序:

{{key}}{{medida.alto}}x{{medida.ancho}}cm

我试过这些说法:

  • ng repeat=“(key,medida)在producto.medidas | orderBy:'alto'”
  • ng repeat=“(key,medida)在producto.medidas | orderBy:'-alto'”
  • ng repeat=“(key,medida)in producto.medidas | orderBy:'medida.alto'”
  • ng repeat=“(key,medida)in producto.medidas | sortBy:(medida.alto)”
  • ng repeat=“(key,medida)in producto.medidas|sortBy:(alto)”

但是排序不起作用。

在Angular中,您不能直接对对象进行排序,但有解决方法

首先将对象转换为关联数组

并根据所需的键进行排序

下面是示例代码

首先创建toArray筛选器

app.filter("toArray", function(){
    return function(obj) {
        var result = [];
        angular.forEach(obj, function(val, key) {
            result.push(val);
        });
        return result;
    };
});

   <div ng-repeat="(key, medida) in producto.medidas | toArray | orderBy:'alto'"> {{key}} {{medida.alto}} x {{medida.ancho}} cm <br/></div>
app.filter(“toArray”,函数(){
返回函数(obj){
var结果=[];
角度forEach(obj,功能(val,键){
结果:推送(val);
});
返回结果;
};
});
{{key}}{{medida.alto}}x{{medida.ancho}}cm