javascript - 如何在angular js中使用orderBy移动顶部的特定元素

标签 javascript angularjs

我有一个名字数组

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/

相关文章:

javascript - 左右滑动标签

javascript - 如何全局设置 Angular 矩时区?

javascript - 如何在 Protractor 中对 HTML 5 执行拖放操作

javascript - Handlebars 过滤对象

javascript - meteor 更新图表

javascript - css() 函数调用静默失败?

javascript - 在 Angular-UI-Bootstrap Datepicker 中的设置日期(date=today)显示自定义字符串 ("Today")?

javascript - 触发 ng-model.$formatters 以编程方式运行

javascript - 使用 clipboard.js 复制表格行

javascript - 在javascript中设置屏幕保护程序的超时时间