AngularJs orderBy 无法按预期使用 int

AngularJs orderBy not working as expected with an int

我正在创建一个需要按列 post_likes、post_dislikes 过滤的 angularJs 应用程序。

现在它没有过滤整个数字: 例如:

<a id="changeLikes"  href="" ng-click="order('-post_likes')"></a>
<a id="changeDislikes" href="" ng-click="order('-post_dislikes')"></a>

点击上方的 changeLikes 选项卡时,项目排序如下:

post_likes => 0
post_likes => 11
post_likes => 2
post_likes => 33
post_likes => 4

Dislikes 也提供相同的结果(数字按第一个整数而不是整数排序)。

控制此数据的控制器是:

app.controller('listCtrl', function ($scope, services) {
    services.getPosts().then(function(data){
        $scope.posts = data.data;
 $scope.predicate = 'post_id';
      $scope.reverse = false;
      $scope.order = function(predicate) {
        $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
        $scope.predicate = predicate;
      };
    });
});

数据通过 PHP 提取,对 SQL 语句没有设置限制。

post_likes 和不喜欢的两列在 MySql 数据库中都是 int(9)。

@Claies 是对的,正在编码的数据全部转换为字符串,返回我的数据 JSON_NUMERIC_CHECK 解决了问题。

return json_encode($data, JSON_NUMERIC_CHECK);