我有一个传递给Angular迭代器的产品和价格列表。用户可以从下拉列表中选择一个选项,允许他们按照与对象关联的属性之一进行排序。当我尝试颠倒字母属性的顺序时,订单不起作用。
请在此处查看jsfiddle:http://jsfiddle.net/pga6yaxg/
else if ($scope.orderBy == 'name-za') {
return -result.name;
点击添加的,价格和名称a-z,这些工作正常,但是当我选择z-a时,订单不正确。有什么想法吗?
答案 0 :(得分:3)
我修改了 fiddle 以使其有效。
基本上,我添加了一个reverse
变量,就像在AngularJS orderBy documentation中一样:
<li data-ng-repeat="orderBy : [orderByOptions, recent] : reverse track by $index">
现在有效!
<强>更新强>
顺便说一句,您可以通过将predicate
值分配给<option>
标记的实际值并简单地绑定orderBy过滤到<select>
的模型。这样你甚至不会使用reverse
变量!
检查其他 jsFiddle 以获取改进版本。