我正在使用 Angular JS 和 Google Places API 来构建一个 Web 应用程序。
我有一个 ng-repeat,目前正在按“评级”降序排序(orderBy:'- rating')。因此,它将根据评分按降序列出 Google Places API JSON 文件中的 x 个地点。
但是,没有评级的项目/地点被归类为空,这些条目显示在我的 ng-repeat feed 的顶部。这些应该放在 feed 的底部,因为它们没有评级?
所以我希望它看起来如何的一个例子是:
<ng-repeat orderBy:'-rating'>
<place rating="5"/>
<place rating="4.2"/>
<place rating="2.8"/>
<place rating="null"/>
<place rating="null"/>
</ng-repeat>
解决这个问题的最佳方法是什么?
要使用
null
过滤器按 undefined
或 orderBy
值进行排序。使用 []
表示法 orderBy:[ '!rating', '-rating', ]
。
底部将显示
null
或 undefined
值。
喜欢:
<li ng-repeat="option in options | orderBy:[ '!rating', '-rating', ]">{{option.name}}</li>
作为已批准答案的补充,以防万一有人需要它:
如果您希望only null 值到达底部,您可以使用:
orderBy: [ 'rating === null', '-rating' ]
orderBy: [ 'rating !== 0 && !rating', '-rating' ]
这解决了我的问题,希望对其他人有帮助。