我的产品列表显示在此页面上:
https://martin-colleccion.firebaseapp.com/catalogop/Macetas
并遵循以下代码:
<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>
但是我需要在medida.alto(从高到低)中使用Child值alto在ng-repeat里面进行排序:
<div ng-repeat="(key, medida) in producto.medidas"> {{key}} {{medida.alto}} x {{medida.ancho}} cm <br/></div>
我试过这些陈述:
ng-repeat="(key, medida) in producto.medidas | orderBy:'alto'"
ng-repeat="(key, medida) in 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)"
但排序不起作用。
答案 0 :(得分:0)
在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>