【问题标题】:Angular js - sorting in table based on letter ASCII valueAngular js - 基于字母ASCII值在表中排序
【发布时间】:2014-03-12 18:52:12
【问题描述】:

我已经使用 angular 完成了一个基本的表格排序应用程序,正在排序,但问题是我没有得到按 ASCII 值排序的值

谁能告诉我怎么做

[DEMO]

html

    <div ng-app ng-controller="ArrayController">
        <table>
            <th ng-repeat="header in headers">
                <a ng-click="sort_by(header)">{{ headers[$index] }}</a>
            </th>
            <tr ng-repeat="arr in records |orderBy:sortingOrder:reverse">
                <td ng-repeat="val in arr" ng-bind-html-unsafe="arr[headers[$index]]"></td>
            </tr>
        </table>
    </div>

脚本

    function ArrayController($scope) {
    $scope.headers = ['col1', 'col2'];
    $scope.records = [{col1: 'a1', col2: 'd1'}, {col1: 'c2', col2: 'A2'}, {col1: 'b3', col2: 'c3'}, {col1: 'd4', col2: 'a1'}];

    $scope.reverse = true;
     $scope.sort_by = function(newSortingOrder)
        {
            if ($scope.sortingOrder === newSortingOrder)
            {
              $scope.reverse = !$scope.reverse;
            }
            $scope.sortingOrder = newSortingOrder;

          };
}

【问题讨论】:

    标签: javascript angularjs sorting


    【解决方案1】:

    您需要编写一个自定义 orderBy 函数,查看this post了解更多详情。

    【讨论】:

    • 给你,jsfiddle,重点是charCodeAt。
    • 是的......这是我的自定义排序方法$scope.myValueFunction = function(values) { $scope.cards.sort(function(str1, str2) { console.log(str1.name); console.log(str2.name); return ( ( ('aaa').compareTo('sds') ) ? 0 : ( ( str1 &gt; str2 ) ? 1 : -1 ) ); }); }............但我收到 TypeError: Object aaa has no method 'compareTo'
    • 似乎在 javascript 中,字符串没有 compareTo 方法。
    • sorry,我才意识到我没有保存jsfiddle,实际上我已经保存了,让我尝试重写。
    猜你喜欢
    • 2018-04-12
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2020-06-08
    相关资源
    最近更新 更多