具有AngularJS ng-repeat的OrderBy布尔值

时间:2014-01-27 10:42:36

标签: javascript angularjs angularjs-ng-repeat

我希望能够根据变量是真还是假来排序。

假设我们有一个像这样的变量:

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中使用filterng-repeat执行此操作?

2 个答案:

答案 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