具有AngularJS ng-repeat的OrderBy布尔值

Ada*_*ean 10 javascript angularjs angularjs-ng-repeat

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

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

groups = {
    { name: 'first', value: true },
    { name: 'second', value: false },
    { name: 'third', value: true },
    { name: 'fourth', value: false }
}
Run Code Online (Sandbox Code Playgroud)

我们可以这样循环:

<div ng-repeat="group in groups">
    {{group.name}} {{group.value}}
</div>
Run Code Online (Sandbox Code Playgroud)

哪个会给你以下内容:

first true
second false
third true
fourth false
Run Code Online (Sandbox Code Playgroud)

但是,如果我想按布尔值排序,那么我可以这样做:

<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>
Run Code Online (Sandbox Code Playgroud)

哪个会给我以下输出(我想要的):

first true    
third true
second false
fourth false
Run Code Online (Sandbox Code Playgroud)

有没有办法使用orderByfilter单一使用ng-repeat

Set*_*ite 10

orderBy接受布尔值并对其进行排序.

通过'group'的'value'属性对重复元素进行排序:

ng-repeat="group in groups | orderBy: 'value'"
Run Code Online (Sandbox Code Playgroud)

这将颠倒顺序:

ng-repeat="group in groups | orderBy: '-value'"
Run Code Online (Sandbox Code Playgroud)

如果您还想按"组"的"名称"属性排序:

ng-repeat="group in groups | orderBy: ['value','name']"
Run Code Online (Sandbox Code Playgroud)


San*_*sth 4

使用变量名代替对象

orderBy:'Event':false
Run Code Online (Sandbox Code Playgroud)

你会得到想要的输出,例如 -

first true    
third true
second false
fourth false
Run Code Online (Sandbox Code Playgroud)