首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对AngularJS中的多个列进行排序时,显示空值始终在最后

在AngularJS中,当需要对多个列进行排序时,可以使用orderBy过滤器来实现。默认情况下,orderBy过滤器会将空值放在排序结果的最前面,如果希望将空值放在最后,可以通过自定义排序函数来实现。

首先,需要在控制器中定义一个自定义排序函数,该函数将会被orderBy过滤器调用。在该函数中,可以判断当前比较的两个值是否都为空,如果都为空,则返回0,表示两个值相等;如果其中一个值为空,将另一个值排在前面,返回-1或1;如果两个值都不为空,则使用默认的排序规则进行比较。

以下是一个示例代码:

代码语言:javascript
复制
app.controller('myController', function($scope) {
  $scope.items = [
    { name: 'John', age: 25 },
    { name: 'Alice', age: null },
    { name: 'Bob', age: 30 },
    { name: 'Eve', age: null }
  ];

  $scope.customSort = function(item) {
    if (item.age === null) {
      return Number.MAX_VALUE; // 将空值排在最后
    }
    return item.age;
  };
});

在HTML模板中,可以使用orderBy过滤器并传入自定义排序函数来对列进行排序:

代码语言:html
复制
<table>
  <tr>
    <th>Name</th>
    <th>Age</th>
  </tr>
  <tr ng-repeat="item in items | orderBy:customSort">
    <td>{{ item.name }}</td>
    <td>{{ item.age }}</td>
  </tr>
</table>

在上述示例中,customSort函数将空值的age属性映射为Number.MAX_VALUE,这样空值就会被排在最后。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,无法给出具体的链接地址。但腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,可以根据具体需求选择相应的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Angular.js学习笔记(三)

    1、uppercase,lowercase 大小写转换 {{ "lower cap string" | uppercase }} // 结果:LOWER CAP STRING {{ "TANK is GOOD" | lowercase }} // 结果:tank is good 2、date 格式化 {{1490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} // 2017-03-22 13:52:25 3、number 格式化(保留小数) {{149016.1945000 | number:2}}//保留两位 {{149016.1945000 | number}}//默认为保留3位 4、currency货币格式化 {{ 250 | currency }} // 结果:$250.00 {{ 250 | currency:"RMB ¥ " }} // 结果:RMB ¥ 250.00 5、filter查找 输入过滤器可以通过一个管道字符(|)和一个过滤器添加到指令中,该过滤器后跟一个冒号和一个模型名称。 filter 过滤器从数组中选择一个子集 // 查找name为iphone的行 {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | filter:{'name':'iphone'} }} 同时filter可以自定义比较函数。 6、limitTo 截取 {{"1234567890" | limitTo :6}} // 从前面开始截取6位 {{"1234567890" | limitTo :6,6}} // 从第6位开始截取6位 {{"1234567890" | limitTo:-4}} // 从后面开始截取4位 7、orderBy 排序 // 根据id降序排 {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | orderBy:'id':true }}

    02
    领券