javascript - 在 Angular 中按数字排序

标签 javascript angularjs sorting

我正在尝试对 json 文件进行排序。我对带逗号的数字有疑问。

排序后的结果:

0,77
10,03
18,79
2,89
24,08

可能数字被转换成字符串。

ng-repeat="cpu in cpus | orderBy:sort:reverse"

$scope.sort = 'x';
$scope.reverse = true;
$scope.order = function(sort) {
$scope.reverse = ($scope.sort === sort) ? !$scope.reverse : false;
$scope.sort = sort;

问题:知道如何解决吗?

最佳答案

您可以提供将字符串转换回数字的自定义值函数

<!DOCTYPE html>
<html ng-app="app">
  <head>
    <script data-require="angular.js@1.4.7" data-semver="1.4.7" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script>
      angular
        .module('app', [])
        .controller('appCtrl', function($scope, $http) {
          $scope.cpus = [
              { name: 'cpu1', power: '0,77' },
              { name: 'cpu2', power: '10,03' },
              { name: 'cpu3', power: '18,79' },
              { name: 'cpu4', power: '2,89' },
              { name: 'cpu5', power: '24,08' }
          ];

          $scope.myValueFunction = function(cpu) {
              return Number( cpu.power.replace(',', '.') );
          };

          $scope.value = function(cpu) {
              return '(' + cpu.name + '; ' + cpu.power + ')';
          };
        });
    </script>
  </head>

  <body ng-controller="appCtrl">
    <ul ng-repeat="cpu in cpus | orderBy:myValueFunction">
      <li>{{cpu.name}} {{value(cpu)}}</li>
    </ul>
  </body>
</html>

Plunker

关于javascript - 在 Angular 中按数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33858777/

相关文章:

javascript - 如何保存所有数据

javascript - 如何在angularjs函数中调用jQuery函数

C# Datagridview 不对 Checkbox 列进行排序

AngularJS 从指令访问别名 Controller 属性

javascript - 将变量的值传递给 angularjs 指令模板函数

python - 使 python 用户定义的类可排序、可散列

在solr中对文本字段进行排序

javascript - 返回对 2 个 promise 的响应

javascript - 从文本框中删除文本

javascript - React Redux - 渲染时出错,因为期望的 Prop 尚未到达