Javascript 单击按钮时,orderBy未更新

Javascript 单击按钮时,orderBy未更新,javascript,angularjs,Javascript,Angularjs,希望有人能帮我解决我的问题。 我试图对我的列表中的特定数据进行排序,当我提前说明需要排序的内容时,这种方法很有效。 但当我点击一个按钮时,它并不会对我的列表进行排序 希望有人能帮我解决这个问题 这是我的app.js代码: app.controller("ListController", function ($scope, $interval, $http, myService, OpenDataService) { myService.async().then(function (d)

希望有人能帮我解决我的问题。 我试图对我的列表中的特定数据进行排序,当我提前说明需要排序的内容时,这种方法很有效。 但当我点击一个按钮时,它并不会对我的列表进行排序

希望有人能帮我解决这个问题

这是我的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>
地点
  • {{item.locatie} {{item.gemeente} {{item.distance}} {{item.duration} 选择器

ng repeat指令中的“顺序”与控制器中的“顺序”在不同的范围内。添加一个包装类,如下所示:

$scope.opts = {order: ""};
然后在“更改”函数中更新以下内容:

$scope.opts.order = value;
在html中:

orderBy:opts.order

ng repeat指令中的“顺序”与控制器中的“顺序”在不同的范围内。添加一个包装类,如下所示:

$scope.opts = {order: ""};
然后在“更改”函数中更新以下内容:

$scope.opts.order = value;
在html中:

orderBy:opts.order

尝试在标记a上单击ng。ng单击工作正常,并且正在更改值。唯一的问题是,my orderBy无法获取更改的值:尝试在标记上单击ng。ng单击工作正常,并且正在更改值。唯一的问题是更改后的值没有被我的orderBy获取:你可能是我的一个抢手货吗?我正在尝试您的解决方案,并在我的Listcontroller中编辑了第一部分。我改变方法的第二个。我的orderBy中的第三个:但出于某种原因,它仍然没有排序:(很奇怪,我在我的代码中使用了与您相同的方式。但它仍然没有更新:(它在change方法中正确地更改了变量,但orderBy没有做任何事情。也许更多的信息会有所帮助。ng click是否在实际站点上的ListController之外?我的ng click在ListController内部,我还可以从该ng click调用$scope.change方法。当我单击它时,它也会更改变量。)因此是可行的。唯一的问题是它看起来不像orderBy带有新的变量。你可能是我的帮手吗?我正在尝试你的解决方案,我在我的Listcontroller中编辑了第一部分。第二部分在我的更改方法中。第三部分在我的orderBy中:但出于某种原因,它仍然没有排序:(真奇怪,我在我的代码中使用的方式与你相同。但它仍然没有更新:(它在change方法中正确地更改了变量,但orderBy没有做任何事情。也许更多的信息会有所帮助。ng click是否在实际站点上的ListController之外?我的ng click在ListController内部,我还可以从该ng click调用$scope.change方法。当我单击它时,它也会更改变量。)唯一的问题是,它看起来没有使用新变量进行排序