单击按钮时,orderBy没有更新

时间:2016-01-15 02:34:18

标签: javascript angularjs

希望有人可以帮我解决我的问题。 我正在尝试按特定数据排序我的列表,当我提前说明需要排序的内容时,这样可以正常工作。 但是,当我点击按钮时执行此操作时,无论如何都不会对我的列表进行排序。

希望有人可以帮我解决这个问题。

这是我的app.js代码:

app.controller("ListController", function ($scope, $interval, $http, myService, OpenDataService) {
    myService.async().then(function (d) {

        OpenDataService.opendata = d;

        $scope.openData = OpenDataService.opendata;
        $scope.order = "";



    });

    $scope.orderOptions = ["gemeente", "locatie"];


    $scope.change = function (value) {
        console.log("change");

        $scope.order = value;
        console.log(value);
    }
    $scope.test = OpenWifiData;


});

这是我使用的HTML代码:

<li ng-click="change('gemeente')"><a>locatie</a></li>
<div id="WifiSpots" ng-controller="ListController" class="col-sm-12 col-md-4 col-md-offset-2">
                <div  ng-repeat="item in openData | filter:searchText | orderBy: order">
                    <ul class="list-group">
                        <li class="list-group-item">
                            <div class="row wifiSpots" >
                                <div class="col-md-2">{{item.locatie}}</div>
                                <div class="col-md-2">{{item.gemeente}}</div>
                                <div clas="col-md-1">{{item.distance}}</div>
                                <div clas="col-md-1">{{item.duration}}</div>
                                <button ng-controller="MapController" ng-click="calculateAndDisplayRoute(item.objectid)" class="btn ">Selecteer</button>
                            </div>
                        </li>
                    </ul>
                </div>
            </div>

1 个答案:

答案 0 :(得分:0)

ng-repeat指令中的'order'与控制器中的'order'的范围不同。像这样添加一个包装类:

$scope.opts = {order: ""};

然后在你的更改功能中更新:

$scope.opts.order = value;

在html中:

orderBy:opts.order