AngularJs:orderBy的表达对我不起作用

时间:2015-07-13 14:58:37

标签: javascript angularjs filter sql-order-by

我正在使用AngularJs 1.2.8。这是我的问题:

我想使用过滤器来命令一个对象数组,并且发生了一件奇怪的事情。

当我使用没有任何过滤器的ng-repeat="thread in threads"时,它会通过方兴未知来命令它。

当我使用ng-repeat="thread in threads | orderBy: '-':true"时,它由后代命令。

问题在于:当我使用ng-repeat="thread in threads | orderBy: '-':false"时,它无论如何都是由后代命令的。

谢谢大家。

1 个答案:

答案 0 :(得分:1)

您是否尝试根据某个属性订购列表?通常,orderBy用于ng-repeat中每个项目中的属性:

降序基于示例属性标题

ng-repeat="thread in threads | orderBy: '-title'"

ng-repeat="thread in threads | orderBy: '-date'"

ng-repeat="thread in threads | orderBy: '-id'"

升序基于示例属性标题

ng-repeat="thread in threads | orderBy: '-title'"

ng-repeat="thread in threads | orderBy: '+date'"

ng-repeat="thread in threads | orderBy: '+id'"

orderBy上的Angular文档。请注意' +'或者' - '在单引号字符中附加属性名称的开头。

您还可以与名为query的自定义过滤器结合使用,也可以在带有ng-model =" query"的文本输入元素上使用。例如:

ng-repeat="thread in threads | filter:query | orderBy: '-title'"

让我知道这是否有助于或澄清问题,以确定thread实体的属性以及您希望排序的属性。

订购索引:

<强>降序 ng-repeat="thread in threads | orderBy: thread.$index:true"

<强>升序 ng-repeat="thread in threads | orderBy: thread.$index:false"

的jsfiddle:

http://jsfiddle.net/g9posLyp/