在 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>
我正在尝试对我的搜索结果进行排序。而不是用 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>