2017-05-15 1 views
0

Ich habe eine select-AnweisungWie fügt man Filter zu <select> ohne <ng-options> in Angular JS hinzu?

<select ng-model="selectedItem" ng-change="onChange()"> 
     <option id="{{item.toLowerCase()}}" ng-repeat="item in someArray">{{item}}</option> 
    </select> 

und will einen Filter auf den Optionen anzuwenden einen anderen Wert in der Dropdown-Liste zu zeigen. Irgendwelche Ideen?

Bei der Verwendung von ng-Optionen war es einfach (siehe unten), aber jetzt kann ich nicht scheinen, dass es funktioniert.

<select 
ng-options="item as (item | filterThatIWant) for item in someArray 
ng-model="selectedItem" 
ng-change="onChange()> 
</select> 

Grundsätzlich brauche ich nur das Äquivalent von oben. ohne die ng-Optionen.

Dank

Antwort

0

Es ist die gleiche wie ng-Option

<select ng-model="selectedItem" ng-change="onChange()"> 
    <option id="{{item.toLowerCase()}}" ng-repeat="item in someArray | filterThatIWant">{{item}}</option> 
</select> 
+0

es funktioniert, dank laufen! :) –

0

Sie ng-repeat für Optionen verwenden können,

<select ng-model="selectedItem" ng-change="onChange()"> 
    <option id="{{item.toLowerCase()}}" ng-repeat="item in someArray">{{item | filterThatIWant}}</option> 
</select> 

<!DOCTYPE html> 
 
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<body> 
 

 

 
<select ng-app="myApp" ng-controller="namesCtrl"ng-model="selectedItem" ng-change="onChange()"> 
 
    <option id="{{item.toLowerCase()}}" ng-repeat="item in names">{{item | myFilter}}</option> 
 
</select> 
 

 

 
<script> 
 
var app = angular.module('myApp', []); 
 
app.filter('myFilter', function() { 
 
    return function(x) { 
 
     var i, c, txt = ""; 
 
     for (i = 0; i < x.length; i++) { 
 
      c = x[i]; 
 
      if (i % 2 == 0) { 
 
       c = c.toUpperCase(); 
 
      } 
 
      txt += c; 
 
     } 
 
     return txt; 
 
    }; 
 
}); 
 
app.controller('namesCtrl', function($scope) { 
 
    $scope.names = [ 
 
     'Jani', 
 
     'Carl', 
 
     'Margareth', 
 
     'Hege', 
 
     'Joe', 
 
     'Gustav', 
 
     'Birgit', 
 
     'Mary', 
 
     'Kai' 
 
     ]; 
 
}); 
 
</script> 
 

 
<p>This filter, called "myFilter", will uppercase every ODD character.</p> 
 
</body> 
 
</html>

PLease das obige Snippet

Here is a WORKING DEMO

Verwandte Themen