Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJs orderBy未按预期使用int_Javascript_Angularjs_Angularjs Orderby - Fatal编程技术网

Javascript AngularJs orderBy未按预期使用int

Javascript AngularJs orderBy未按预期使用int,javascript,angularjs,angularjs-orderby,Javascript,Angularjs,Angularjs Orderby,我正在创建一个angularJs应用程序,它需要通过post_likes、post_dislikes列进行过滤 现在,它没有过滤整个数字: 例如: <a id="changeLikes" href="" ng-click="order('-post_likes')"></a> <a id="changeDislikes" href="" ng-click="order('-post_dislikes')"></a> Dislikes也提供相同的

我正在创建一个angularJs应用程序,它需要通过post_likes、post_dislikes列进行过滤

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

<a id="changeLikes"  href="" ng-click="order('-post_likes')"></a>
<a id="changeDislikes" href="" ng-click="order('-post_dislikes')"></a>
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语句没有设置任何限制


MySql数据库中的post_likes和dislikes两列都是int(9)。

@Claies是对的,编码的数据都变成了字符串,用JSON数字检查返回我的数据修复了问题

return json_encode($data, JSON_NUMERIC_CHECK);

将模型中的
post_likes
更改为整数,而不是字符串。您得到的排序是字符串排序。它们可能是数据库中的
int(9)
,但是格式化JSON的PHP将它们作为字符串发送。
return json_encode($data, JSON_NUMERIC_CHECK);