angularJs排序代码不';行不通

angularJs排序代码不';行不通,angularjs,Angularjs,我完全不明白,为什么我的排序代码不起作用。 我只想在我的应用程序中添加一个排序方法“sortFlag”,但它并没有以正确的方式工作 以下是代码: var App2 = angular.module('App2',[ //submodules ]); App2.controller('MainController', ['$scope', '$http', function($scope, $http){ $http.get('https://api.myjson

我完全不明白,为什么我的排序代码不起作用。 我只想在我的应用程序中添加一个排序方法“sortFlag”,但它并没有以正确的方式工作

以下是代码:

var App2 = angular.module('App2',[
    //submodules
]);

    App2.controller('MainController', ['$scope', '$http', function($scope, $http){
        $http.get('https://api.myjson.com/bins/14fug5')
        .success(function(datas){
            $scope.datas_1 = datas
            console.log($scope.datas_1.schema);

        });
        $http.get('https://api.myjson.com/bins/q80it')
        .success(function(datas){
            $scope.datas_2 = datas
        });

        // $scope.predicate = '';
        // $scope.reverse = true;
        // $scope.order = function(predicate) {
        //     $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
        //     $scope.predicate = predicate;
        // };

        $scope.sortFlag = 'id';
        $scope.sortTable = function(flag){
            $scope.sortFlag = flag;
        }

    }]);

角度示例2
выберите данные:
данные1
данные2
{{value}}
{{data.id}
{{data.name}
{{data.price}}
{{data.quantity}
{{value}}
{{data.id}
{{data.name}
{{data.price}}
{{data.quantity}

如果您有任何想法,请帮助我处理这些内容。

我不确定
orderBy
是否可以使用范围变量来使用排序字段。您应该改用函数

控制器:

$scope.dynamicOrderFunction = function() {
    return '-' + $scope.sortFlag;
}
您可以根据排序的方向将-号更改为加号

模板:

<tr ng-repeat="data in datas_2.data | orderBy: dynamicOrderFunction">
    <td>{{data.id}}</td>
    <td>{{data.name}}</td>
    <td>{{data.price}}</td>
    <td>{{data.quantity}}</td>
</tr>

{{data.id}
{{data.name}
{{data.price}}
{{data.quantity}

我不确定
orderBy
是否可以使用范围变量来使用排序字段。您应该改用函数

控制器:

$scope.dynamicOrderFunction = function() {
    return '-' + $scope.sortFlag;
}
您可以根据排序的方向将-号更改为加号

模板:

<tr ng-repeat="data in datas_2.data | orderBy: dynamicOrderFunction">
    <td>{{data.id}}</td>
    <td>{{data.name}}</td>
    <td>{{data.price}}</td>
    <td>{{data.quantity}}</td>
</tr>

{{data.id}
{{data.name}
{{data.price}}
{{data.quantity}

您应该在orderBy中添加另一个参数“reverse”,重复如下操作:

<tr ng-repeat="data in datas_2.data | orderBy:sortFlag:reverse">

这应该能解决你的问题。如果它不适用于您,请告诉我。

您应该在您的orderBy中添加另一个参数“reverse”(反向),然后在ng中重复以下操作:

<tr ng-repeat="data in datas_2.data | orderBy:sortFlag:reverse">
这应该能解决你的问题。如果对你不起作用,请告诉我