ng-repeat 按字符串值排序
ng-repeat order by string value
我想知道是否可以通过基于字符串的列表进行排序,例如
我希望所有 Bear
在基于 item.type
的 ng-repeat 中排在第一位。
数据:
$scope.Reindeers = [{
"name": "Vixen",
"type": "Bear"
},
{
"name": "Prancer",
"type": "Dog"
},
{
"name": "Dancer",
"type": "Cat"
},
{
"name": "Rudolph",
"type": "Bear"
}]
AngularJS 例如
<div class="weird-reindeers" ng-repeat="Deer in Reindeers | orderBy: 'type == Bear'"></div>
orderBy
的参数可以是一个函数:https://docs.angularjs.org/api/ng/filter/orderBy#orderBy-arguments
编写一个函数,returns 一个用于排序的值。最高优先级应return 最低值:
$scope.orderByBears = function(item) {
switch(item.type) {
case "Bear":
return -10;
/*case "Dog":
return -5;*/
default:
return 0;
}
}
然后将其用作您的 orderBy
函数:
<div class="weird-reindeers" ng-repeat="Deer in Reindeers | orderBy: orderByBears"></div>
最简单的解决方案是只使用默认的字母顺序。
所以因为 bear 以 b 开头,所以只写就足够了:
<div class="weird-reindeers" ng-repeat="Deer in Reindeers | orderBy: 'type'">{{Deer}}</div>
因为你的数组是以key:value的方式存储的。这很容易排序。您无需编写任何其他方法或函数。只需在 HTML 中以 Angular 术语放置一个名为 filter 的管道,如下所示。
<div class="weird-reindeers" ng-repeat="Deer in Reindeers | orderBy: 'type'">{{Deer}}</div>
我想知道是否可以通过基于字符串的列表进行排序,例如
我希望所有 Bear
在基于 item.type
的 ng-repeat 中排在第一位。
数据:
$scope.Reindeers = [{
"name": "Vixen",
"type": "Bear"
},
{
"name": "Prancer",
"type": "Dog"
},
{
"name": "Dancer",
"type": "Cat"
},
{
"name": "Rudolph",
"type": "Bear"
}]
AngularJS 例如
<div class="weird-reindeers" ng-repeat="Deer in Reindeers | orderBy: 'type == Bear'"></div>
orderBy
的参数可以是一个函数:https://docs.angularjs.org/api/ng/filter/orderBy#orderBy-arguments
编写一个函数,returns 一个用于排序的值。最高优先级应return 最低值:
$scope.orderByBears = function(item) {
switch(item.type) {
case "Bear":
return -10;
/*case "Dog":
return -5;*/
default:
return 0;
}
}
然后将其用作您的 orderBy
函数:
<div class="weird-reindeers" ng-repeat="Deer in Reindeers | orderBy: orderByBears"></div>
最简单的解决方案是只使用默认的字母顺序。
所以因为 bear 以 b 开头,所以只写就足够了:
<div class="weird-reindeers" ng-repeat="Deer in Reindeers | orderBy: 'type'">{{Deer}}</div>
因为你的数组是以key:value的方式存储的。这很容易排序。您无需编写任何其他方法或函数。只需在 HTML 中以 Angular 术语放置一个名为 filter 的管道,如下所示。
<div class="weird-reindeers" ng-repeat="Deer in Reindeers | orderBy: 'type'">{{Deer}}</div>