【问题标题】:Difference between "reverse" and "-property" with orderBy in ngRepeat?ngRepeat中orderBy的“reverse”和“-property”之间的区别?
【发布时间】:2014-03-14 20:12:40
【问题描述】:

在“orderBy”的AngularJS文档中,“string”属性的描述如下(我强调):

一个 Angular 表达式,其计算结果为要排序的对象,例如“name”以按名为“name”的属性排序。 可选前缀 + 或 - 以控制升序或降序排序(例如,+name 或 -name)。

“reverse”属性说明如下:

反转数组的顺序。

那么使用“-property”和“reverse”应该有什么区别呢?这两者应该做同样的事情吗?

对于我的测试用例,我无法“逆向”做任何事情。我用三个 ngRepeats 构建了一个 plunkr 。第一个没有任何排序,第二个用“reverse”排序,最后一个用“-property”排序。后者做了我所期望的,前者似乎没有做任何事情。

文档显然是模棱两可的,但我原以为“reverse”和“-property”会做同样的事情。这是怎么回事?

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    查看manual,您会发现reverse 的类型为boolean。这表明它将在当前范围内查找它的值,或者是字面量。简单地提取reverse 然后将评估为undefined(因为它可能没有在范围上定义)这是错误的,因此reverse 没有效果。使用范围值或文字(真、假)来查看它的效果。

    之所以有两种反转排序顺序的方法是因为很难通过数据绑定技术更改+/-,而使用反转表达式很容易简单地引用范围变量。从而通过数据绑定改变顺序(例如,改变范围变量的按钮点击,这实际上是手册页上的一个例子)。

    【讨论】:

      【解决方案2】:

      而不是 orderBy:'lastRun':reverse 在“反向”周围加上引号:orderBy:'lastRun':'reverse'

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-09
        • 2011-09-01
        • 2012-01-31
        • 2018-07-18
        • 2013-05-15
        相关资源
        最近更新 更多