javascript - Angular 自定义 orderBy 结合了字母和数字排序

标签 javascript angularjs angularjs-filter

我有一个如下数组(针对问题简化了数据):

var myArray = ['Text 1', 'Text 9', 'Text 10'];

可以理解,应用常规 Angular orderBy 会产生以下结果:

Text 1
Text 10
Text 9

我正在寻找最优雅的方法来编写自定义 orderBy 函数,该函数将生成:

Text 1
Text 9
Text 10

谢谢!

最佳答案

您应该为 orderBy 过滤器编写自定义表达式,如下所示:

var myApp = angular.module('myApp',[]);


function MyCtrl($scope) {
    $scope.myArray = ['Text 1', 'Text 9', 'Text 10'];
    
    $scope.myExpression = function(item) {
        var words = item.split(' ');
        return parseInt(words[1]);
    };
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="MyCtrl">
  <ul ng-repeat="item in myArray | orderBy:myExpression">
      <li>{{item}}</li>
  </ul>
</div>

关于javascript - Angular 自定义 orderBy 结合了字母和数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30122830/

相关文章:

javascript - Angular.js ng-repeat 按具有多个值之一的属性(或值)过滤

javascript - PixiJS - 基于位置吸收光和动态音频

javascript - 从 jQuery Autocomplete Widget Ajax 调用中访问 $(this) DOM 元素

javascript - 使用 jquery 解析数据-*

javascript - 输入的总和数组

angularjs - 我想在每行之前添加行号,我正在使用 angularJs json 过滤器

javascript - 我如何在我的 nuxt vps 上使用 laravel csrf token

javascript - AngularJS 复选框取消选中

angularjs - 在查询参数中使用 mongoDB ObjectID,它会影响 SEO 吗?

javascript - Angularjs 自定义 select2 指令