【发布时间】:2018-06-06 04:27:20
【问题描述】:
我将产品列表作为对象数组。希望根据最高观看次数显示。我尝试使用“orderBy”服务。但它不是从我附加的对象数组中过滤出来的。关于如何做到这一点的任何建议?
vm.products = [
{
title : 'ABC',
imgSrc: '../../images/product1.png',
viewsCount: '183',
clicksCount: '34'
},
{
title : 'DEF',
imgSrc: '../../images/product1.png',
viewsCount: '158',
clicksCount: '30'
},
{
title : 'GHI',
imgSrc: '../../images/product1.png',
viewsCount: '86',
clicksCount: '32'
},
{
title : 'JKL',
imgSrc: '../../images/product1.png',
viewsCount: '47',
clicksCount: '20'
},
{
title : 'MNO',
imgSrc: '../../images/product1.png',
viewsCount: '62',
clicksCount: '22'
}
];
<md-list>
<md-list-item layout="row" layout-align="space-between center"
ng-repeat="product in vm.products | orderBy:'product.viewsCount'"
ng-click="vm.latestSelectedIndex = $index; vm.selectProduct(product)"
ng-show="!$first">
<div flex="80">
<h3 class="product-title">{{product.title}}</h3>
</div>
<div class="product-views" flex="20">
<div class="count">{{product.viewsCount}}</div>
<div class="count-label"> Views </div>
</div>
</md-list-item>
</md-list>
【问题讨论】:
-
这可能是因为 viewCount 值是字符串,所以可以说是按字母排序,而不是按数字排序
-
我把它转换成了数字。现在它正在工作。谢谢...
标签: javascript angularjs sorting