【问题标题】:AngularFire used to have a orderByPriority filterAngularFire 曾经有一个 orderByPriority 过滤器
【发布时间】:2015-01-23 19:46:36
【问题描述】:

从谷歌结果来看,AngularFire 似乎曾经有一个 orderByPriority 过滤器。但我在当前的 AngularFire api 文档中找不到这个:https://www.firebase.com/docs/web/libraries/angular/api.html。据我了解, orderByPriority 将对象属性转换为数组。我猜这个过滤器已经消失了,因为现在有另一种更好的方法可以做到这一点,但是那个方法是什么?

【问题讨论】:

  • $firebase(new Firebase('https://yours.firebaseio.com/path/to/items').orderByPriority()).$asArray() 之类的东西应该可以工作。如果它给您带来问题(我没有尝试过,所以它可能无法复制/粘贴/工作),请更新您的问题以显示您的相关 sn-p。
  • AngularFire 的 orderByPriority 方法在 0.8.0 版中被删除。见firebase.com/docs/web/libraries/angular/changelog.html

标签: angularjs firebase angularfire


【解决方案1】:

不再需要orderByPriority,因为您可以使用已隐式排序的同步数组。

所以在古代,你会做这样的事情:

$scope.data = $firebase(ref);

<div ng-repeat="item in data | orderByPriority" />

在不那么古老的时代(即 0.8.x 或更高版本),您只需选择一种数组格式:

$scope.data = $firebase(ref).$asArray();

<div ng-repeat="item in data" />

【讨论】:

  • 旧 - 改用 $firebaseObject 和 $firebaseArray。似乎不是简单的 -created_at 反向顺序的解决方案。 . .奇怪的是 firebase 不支持最简单的事情。 . .
  • 这是在字段级查询存在之前编写的。以相反的顺序创建很简单:recordRef.child('created_at').set( - date );recordRef.orderByChild('created_at').on(...)
猜你喜欢
  • 2017-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
相关资源
最近更新 更多