Angular:按值列表对集合进行排序
Angular: sort collection by list of values
如何根据其他数组的特定顺序对对象集合进行排序(Angular,Lodash):
var list = [{name: "Name 10"},
{name: "Name 20"},
{name: "Name 321"},
{name: "Name 41"}];
var orderList = ["Name 20", "Name 41", "Name 321", "Name 10"];
//result: {name: "Name 20"}, {name: "Name 41"},{name: "Name 321"},{name: "Name 10"}]
我需要申请从 orderList
到 list
的订单
C# 中的模拟
对于此示例,我们将使用 ng-repeat
指令呈现好友列表。使用内置的 filter
和 orderBy
过滤器,我们将在客户端过滤和排序好友列表。
<input ng-model="query" type="text" placeholder="Filter">
<ul ng-repeat="obj in list | filter:query | orderBy: 'name' ">
<li>{{friend.name}}</li>
</ul>
AngularJS 支持按 orderBy 过滤器排序。我们需要将表达式函数传递给相对于其他数组的过滤器。查看以下代码:
HTML:
{{list|orderBy:order}}
Javascript:
$scope.list = [{name: "Name 1"},
{name: "Name 2"},
{name: "Name 3"},
{name: "Name 4"}];
$scope.orderList = ["Name 2", "Name 1", "Name 3", "Name 4"];
$scope.order = function(predicate) {
return $scope.orderList.indexOf(predicate.name);
};
为了更好的理解我做了JSFiddle
如何根据其他数组的特定顺序对对象集合进行排序(Angular,Lodash):
var list = [{name: "Name 10"},
{name: "Name 20"},
{name: "Name 321"},
{name: "Name 41"}];
var orderList = ["Name 20", "Name 41", "Name 321", "Name 10"];
//result: {name: "Name 20"}, {name: "Name 41"},{name: "Name 321"},{name: "Name 10"}]
我需要申请从 orderList
到 list
C# 中的模拟
对于此示例,我们将使用 ng-repeat
指令呈现好友列表。使用内置的 filter
和 orderBy
过滤器,我们将在客户端过滤和排序好友列表。
<input ng-model="query" type="text" placeholder="Filter">
<ul ng-repeat="obj in list | filter:query | orderBy: 'name' ">
<li>{{friend.name}}</li>
</ul>
AngularJS 支持按 orderBy 过滤器排序。我们需要将表达式函数传递给相对于其他数组的过滤器。查看以下代码:
HTML:
{{list|orderBy:order}}
Javascript:
$scope.list = [{name: "Name 1"},
{name: "Name 2"},
{name: "Name 3"},
{name: "Name 4"}];
$scope.orderList = ["Name 2", "Name 1", "Name 3", "Name 4"];
$scope.order = function(predicate) {
return $scope.orderList.indexOf(predicate.name);
};
为了更好的理解我做了JSFiddle