AngularJS:OrderBy降序(null entries)

omtl5h9j  于 6个月前  发布在  Angular
关注(0)|答案(1)|浏览(51)

我正在使用Angular JS和Google Places API来构建一个Web应用程序。
我有一个ng-repeat,它目前是按“rating”降序排序的(orderBy:'-rating')。因此它将根据rating按降序列出Google Places API JSON文件中的x个地点。
然而,没有评级的项目/地点被归类为null,这些条目显示在我的ng-repeat提要的顶部。这些应该到提要的底部,因为它们没有评级?
我希望它看起来像这样的一个例子是:

<ng-repeat orderBy:'-rating'>
  <place rating="5"/>
  <place rating="4.2"/>
  <place rating="2.8"/>
  <place rating="null"/>
  <place rating="null"/>
</ng-repeat>

字符串
最好的办法是什么?

rt4zxlrg

rt4zxlrg1#

使用orderBy筛选器对nullundefined值进行排序。使用[]表示法orderBy:[ '!rating', '-rating', ]
这将在底部显示nullundefined值。
比如:

<li ng-repeat="option in options | orderBy:[ '!rating', '-rating', ]">{{option.name}}</li>

字符串
如果你只想让**空值进入底部,你可以用途:
orderBy: [ 'rating === null', '-rating' ]
对于除0以外的所有falsy值,您可以执行以下操作:
orderBy: [ 'rating !== 0 && !rating', '-rating' ]

相关问题