在ng-click

时间:2016-03-28 02:57:29

标签: javascript jquery ruby-on-rails angularjs ransack

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

因此,为了使其成功,我需要通过升序或降序进行搜查。

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

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

这可以按预期工作。

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

1 个答案:

答案 0 :(得分:3)

您可以在控制器中创建一个存储当前订单(asc或desc)的变量。然后,只需在每次单击链接时调用服务器之前切换此变量。

示例实施:

控制器:

$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>