Javascript AngularJs orderBy未按预期使用int
我正在创建一个angularJs应用程序,它需要通过post_likes、post_dislikes列进行过滤 现在,它没有过滤整个数字: 例如: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也提供相同的
<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);