2017-04-10 5 views
0

Ich habe Tabelle mit Bestellungen, und ich möchte sie auf klicken und umgekehrt Sortierung auf zweiten Klick sortieren.Auf den ersten Klick Sortierung funktioniert gut, aber auf den zweiten Klick Reverse Sortierung funktioniert nicht.Es löst Parsing Ausnahme.Hier mein Code HTMLumgekehrte Reihenfolge beim zweiten Klick

<tr> 
    <th><a href="#" ng-click="changeOrder('merchant.id');" ng-dblclick="forDoubleClick('merchant.id')"><abbr title="Merchant ID">M.I.</abbr></a></th> 
    </tr> 

    <tr dir-paginate="item in serverData | orderBy : orderBy | filter:filterData | itemsPerPage: itemPerPageValue"></tr> 

    ... 

meine JS-Code

$scope.orderBy = 'value'; 

$scope.changeOrder = function(value) { 
     $scope.orderBy = value; 
    } 

$scope.forDoubleClick = function(value) 
    { 
     $scope.orderBy = value + " : reverse "; 
    } 
+0

erhalten Hilfe von [diese nützliche SO antwortet] (http://stackoverflow.com/questions/31074578/how-to-reverse-sort-a-column-on-click-using-angularjs) –

+0

danke es ist funktioniert gut . –

Antwort

0

Sie nicht brauchen $scope.forDoubleClick Funktion ist, habe ich nur noch eine weitere Variable $scope.currentOrder = 1; die die Sort Bestellung entscheiden. d. h. wenn % oder remainder gleich 0 ist, sortiere nach Ascending order else von Descending um.

Und erhöhen $scope.currentOrder auf jeder click

$scope.currentOrder = 1; 
$scope.changeOrder = function(value) { 
$scope.currentOrder++; 
if($scope.currentOrder % 2 != 0) 
    $scope.orderBy = '-' + value; 
}else{ 
    $scope.orderBy = value; 
} 
+0

Ich versuchte es, aber die umgekehrte Sortierung war falsch, ich denke, es funktioniert anders für String und Int, aber ich weiß nicht in der Anfang, welche meine Objekte (int oder String) sein wird, muss es für beide arbeiten. –

+0

könnten Sie eine Geige erstellen? – manish

0

Können Sie so etwas wie dies versuchen?

$scope.sortOrder = 'ASC'; 
$scope.changeOrder = function(value) { 
    if($scope.sortOrder === 'ASC') { 
     $scope.orderBy = value; 
     $scope.sortOrder = 'DSC'; 
    } else { 
     $scope.orderBy = value + " : reverse "; 
     $scope.sortOrder = 'ASC'; 
    } 
} 
+0

Ich versuchte es parse Fehler auftritt. https://docs.angularjs.org/error/$parse/syntax?p0=:&p1=is%20an%20unexpected%20token&p2=13&p3=merchant.id%20:%20reverse&p4=:%20reverse –

+0

Ich habe versucht, gleichen Fehler –

+0

Können Sie ein einzelnes Zitat aus ng-click = "changeOrder (merchant.id);" entfernen und versuche es erneut? –

0

Statt ng-click="changeOrder('merchant.id');" setzen

ng-click="changeOrder(merchant.id);" gleiche für ng-dblclick geht.

+0

Ich habe es versucht. funktioniert nicht –

Verwandte Themen