AngularJs orderBy与int无法正常工作

时间:2015-10-23 06:34:37

标签: javascript angularjs angularjs-orderby

我正在创建一个需要通过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

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

控制此数据的控制器是:

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和dislikes两列都是MySql DB中的int(9)。

1 个答案:

答案 0 :(得分:0)

@Claies是正确的,正在编码的数据全部转为字符串,使用JSON_NUMERIC_CHECK返回我的数据修复了问题。

return json_encode($data, JSON_NUMERIC_CHECK);