2017-07-14 2 views
0

Ich habe diese RichtlinieWie kann man eine benutzerdefinierte Reihenfolge durch Logik in eckigen?

app.directive('myEnter', ['searchSvc', function (searchSvc) { 
return{ 
    restrict: 'A',   
    link: function (scope, element, attrs) { 
     element.bind("keyup", function() { 
      searchSvc.getPlanets(this.value) 
      .then(function(response){ 
       scope.planets = response.data.results; 
       var filtered = []; 
       angular.forEach(scope.planets, function(item) { 
        filtered.push(item); 
       }); 
       scope.filtered = filtered; 
       console.log(filtered); 
       scope.min = '10px';  

      }).catch(function(error){ 
       $scope.error = response.data; 
      });   
     }); 

     } 
    } 

}]); 

In den scope.planets ich habe:

scope.planets = { 
        "name":"Alderaan", 
        "population":"2000000000" 
       }, 
       { 
        "name":"Yavin IV", 
        "population":"1000" 
       } 

ich diesen Rahmen aufsteigend nach Bevölkerung sortieren wollen, irgendwie mein orderby: 'population' funktioniert nicht. Könnte mir jemand mit der benutzerdefinierten Funktion helfen?

In der HTML-Datei Ich habe,

<tr ng-repeat="planet in filtered"> 
    <td><span>{{planet.name }}</span></td> 
    <td><span>{{planet.population}}</span></td> 
</tr> 
+1

Die Population ist eine Zeichenfolge. Sie müssen es in eine Zahl umwandeln. – Hoyen

Antwort

0

Typo Fehler orderby 'B' Hauptstadt sein sollte (orderBy)

<tr ng-repeat="planet in filtered | orderBy : 'population'"> 
    <td><span>{{planet.name }}</span></td> 
    <td><span>{{planet.population}}</span></td> 
</tr> 

, wenn Sie wollen, dass es umgekehrt verwenden: reverese im orderBy

filtern
<tr ng-repeat="planet in filtered | orderBy : 'population' : 'reverse'"> 
     <td><span>{{planet.name }}</span></td> 
     <td><span>{{planet.population}}</span></td> 
    </tr> 
+0

keine typoerror ist nicht da, ich doppelt cheecked es, könnten Sie bitte helfen Sie mir mit benutzerdefinierten Funktion –

Verwandte Themen