87 votes

Comment faire en sorte que orderby filter fonctionne sur un tableau de chaînes?

Voici le code qui ne fonctionne pas: Démo: http://jsfiddle.net/8dt94/63/

 <div ng-controller="MyCtrl">    
    <input type="text" ng-model="searchText" />
  <ul ng-repeat="strVal in arrVal|orderBy|filter:searchText" >
      <li>{{strVal}}</li>
  </ul>
</div>

var app=angular.module('myApp', []);
app.controller('MyCtrl', function ($scope,$filter) {
  $scope.arrVal = ['one','two','three','four','five','six'];  
});
 

251voto

notclive Points 1395

Vous pouvez commander par une méthode pour pouvoir utiliser la méthode toString

 <ul ng-repeat="strVal in arrVal | orderBy:'toString()' | filter:searchText">
 

12voto

Mark Rajcok Points 85912

Ecrire un filtre personnalisé :

 app.filter('mySort', function() {
    return function(input) {
      return input.sort();
    }
  });
 

HTML:

 <ul ng-repeat="strVal in arrVal|filter:searchText|mySort">
 

Violon .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X