我希望能够根据变量是真还是假来排序。
假设我们有一个像这样的变量:
groups = {
{ name: 'first', value: true },
{ name: 'second', value: false },
{ name: 'third', value: true },
{ name: 'fourth', value: false }
}
我们可以这样循环:
<div ng-repeat="group in groups">
{{group.name}} {{group.value}}
</div>
这将为您提供以下内容:
first true
second false
third true
fourth false
但如果我想按布尔值排序那么我可以这样做:
<div ng-repeat="group in groups | filter:{value:true}">
{{group.name}} {{group.value}}
</div>
<div ng-repeat="group in groups | filter:{value:false}">
{{group.name}} {{group.value}}
</div>
哪会给我以下输出(我想要的):
first true
third true
second false
fourth false
有没有办法在一个orderBy
中使用filter
或ng-repeat
执行此操作?
答案 0 :(得分:9)
orderBy接受布尔人的排序。
按重要值排序重复元素&#39; &#39;组的财产:
ng-repeat="group in groups | orderBy: 'value'"
这将颠倒顺序:
ng-repeat="group in groups | orderBy: '-value'"
如果您还希望按照名称排序&#39; &#39;组的财产:
ng-repeat="group in groups | orderBy: ['value','name']"
答案 1 :(得分:4)
使用变量名称代替对象
orderBy:'Event':false
您将获得所需的输出,如 -
first true
third true
second false
fourth false