如何按 angularjs 中的降序排列对象数组?
How to orderBy a array of objects in descending order in angularjs?
我有一个非常简单的对象数组,我想使用 javascript 中的 $filter('orderBy')
对其进行排序。不知何故,它似乎不起作用。 jsFiddle
这是代码
var app = angular.module('myApp', []);
app.controller('myController', function($scope, $filter){
var person = [{
name : "Saras"
},
{
name : "Arya"
}];
$filter('orderBy')(person, 'name');
console.log(person);
});
我不明白为什么我不能让它工作?感谢帮助。并且解决方案应该在 JS 中而不是在 HTML 中。
您应该将第二个参数作为 属性 名称 name
传递,然后将过滤后的结果分配给您想要的范围变量。因此不需要对 UI ng-repeat
输出进行任何过滤。
$scope.person = $filter('orderBy')(person, 'name');
<div ng-repeat="p in person">
{{p.name}}
</div>
如果您想在视图中看到它,您应该将 属性 保留在范围变量之一上,或者更确切地说,您也可以在显示记录时在客户端执行此简单过滤。
<div ng-repeat="p in person | orderBy: 'name'">
{{p.name}}
</div>
在 orderBy 参数上添加 + 或 - 前缀将按 +(升序)或 -(降序)排序;
示例:
<li ng-repeat="x in customers | orderBy : '-city'">
{{x.name + ", " + x.city}}
</li>
更多信息:http://www.w3schools.com/angular/ng_filter_orderby.asp
或者如果你想 console.log 它那么只需在引号中添加名称作为参数:
$filter('orderBy')(person, 'name');
示例:
<tr ng-repeat="friend in friends | orderBy:'-age'">
<td>{{friend.age}}</td>
<td>{{friend.name}}</td>
</tr>
在表达式前使用“-”符号
$scope.person = $filter('orderBy')($scope.person , 'name', true);
true 对于降序和
升序为 false
我有一个非常简单的对象数组,我想使用 javascript 中的 $filter('orderBy')
对其进行排序。不知何故,它似乎不起作用。 jsFiddle
这是代码
var app = angular.module('myApp', []);
app.controller('myController', function($scope, $filter){
var person = [{
name : "Saras"
},
{
name : "Arya"
}];
$filter('orderBy')(person, 'name');
console.log(person);
});
我不明白为什么我不能让它工作?感谢帮助。并且解决方案应该在 JS 中而不是在 HTML 中。
您应该将第二个参数作为 属性 名称 name
传递,然后将过滤后的结果分配给您想要的范围变量。因此不需要对 UI ng-repeat
输出进行任何过滤。
$scope.person = $filter('orderBy')(person, 'name');
<div ng-repeat="p in person">
{{p.name}}
</div>
如果您想在视图中看到它,您应该将 属性 保留在范围变量之一上,或者更确切地说,您也可以在显示记录时在客户端执行此简单过滤。
<div ng-repeat="p in person | orderBy: 'name'">
{{p.name}}
</div>
在 orderBy 参数上添加 + 或 - 前缀将按 +(升序)或 -(降序)排序;
示例:
<li ng-repeat="x in customers | orderBy : '-city'">
{{x.name + ", " + x.city}}
</li>
更多信息:http://www.w3schools.com/angular/ng_filter_orderby.asp
或者如果你想 console.log 它那么只需在引号中添加名称作为参数:
$filter('orderBy')(person, 'name');
示例:
<tr ng-repeat="friend in friends | orderBy:'-age'">
<td>{{friend.age}}</td>
<td>{{friend.name}}</td>
</tr>
在表达式前使用“-”符号
$scope.person = $filter('orderBy')($scope.person , 'name', true);
true 对于降序和 升序为 false