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