我有一个名字数组
var arr = [
{firstName : 'King'},
{firstName :'Auk'},
{firstName :'Kish'},
{firstName :'You'},
{firstName :'Blob'}
];
我在 firstName
字段上使用 Angular js 的 orderBy
,就像这样
<div ng-repeat="name in arr| orderBy: 'firstName'">
<p>{{arr.firstName}}</p>// Auk, Blob, King,Kish,You
</div>
但是,我首先想要“你”,是否有任何机制可以将该元素置于顶部。
最佳答案
您可以编写一个更简单的过滤函数来处理这种特殊行为:
<div ng-repeat="name in arr | orderBy:[youSort, 'firstName']">
<p>{{name.firstName}}</p>
</div>
其中函数 youSort
将被定义为:
$scope.youSort = function(obj) {
return obj.firstName === 'You' ? '' : name;
};
这是一个演示:
angular.module('demo', []).controller('MainController', function($scope) {
$scope.arr = [
{firstName : 'King'},
{firstName :'Auk'},
{firstName :'Kish'},
{firstName :'You'},
{firstName :'Blob'}
];
$scope.youSort = function(obj) {
return obj.firstName === 'You' ? '' : name;
};
});
<script src="https://code.angularjs.org/1.4.3/angular.js"></script>
<div ng-app="demo" ng-controller="MainController">
<div ng-repeat="name in arr | orderBy:[youSort, 'firstName']">
<p>{{name.firstName}}</p>
</div>
</div>
关于javascript - 如何在angular js中使用orderBy移动顶部的特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32122152/