在 ng-click 上切换参数的最佳方式

Best way to toggle between parameters on ng-click

我正在尝试对我的搜索结果进行排序。而不是用 angular 订购,我希望我的服务器这样做。我正在使用 rails 并使用 ransack 进行搜索..

所以为了让它工作,我需要通过升序或降序来搜查。

所以我创建了一个 link 并使用了一个 ng-click 并传递了如下参数

 <a href="" ng-click="getRooms('price asc')">price</a>

这按预期工作。

但是当有人点击它时,我希望传递的值从 price asc 更改为 price desc。所以每次点击它都会切换。使用 ng-click 时可以吗?我唯一能想到的是使用 2 links 并隐藏点击的,但我认为应该有另一种更好的方法来做到这一点..

您可以在控制器中创建一个变量来存储当前顺序(升序或降序)。然后,每次单击 link 时,只需在调用服务器之前切换此变量即可。

实施示例:

控制器:

$scope.order = 'asc'; // initial, default order

function toggleOrder() {
    $scope.order = $scope.order == 'asc' ? 'dsc' : 'asc';
}

$scope.getRooms = function (columnName) {
    toggleOrder();

    // Make the call to the server using the columnName and $scope.order
}

HTML:

<a href="" ng-click="getRooms('price')">price</a>