2013-10-04 7 views
9

ho i seguenti dati in mio controller:In JS angolare, quando si utilizza una selezione con opzioni-ng per un filtro. Come posso creare un'opzione "tutto"?

$scope.breeds = ["Poodle", "Collie", "German shepherd"]; 

$scope.dogs = [ 
     { name: "Bingo", breed: "Poodle" }, 
     { name: "Lassie", breed: "Collie" }, 
     { name: "Bert", breed: "German shepherd" }, 
     { name: "Lily", breed: "Poodle" }, 
     { name: "Obi-Wan", breed: "Collie" } 
    ]; 

Ed ecco il mio html:

<select ng-model="query.breed" ng-options="breed for breed in breeds">          
    <option value="">All breeds</option> 
</select> 

    <table> 
     <thead> 
      <tr> 
       <th>Name</th> 
       <th>Breed</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr ng-repeat="dog in dogs |filter:query"> 
       <td>{{dog.name}}</td> 
       <td>{{dog.breed}}</td> 
      </tr> 
     </tbody> 
    </table> 

Tutto funziona bene - Quando seleziono Collie, vengono visualizzati gli oggetti con razza == "Collie" , ecc. Ma non riesco a capire come far funzionare le opzioni "Tutte le razze".

risposta

8

Quando si utilizza ngOptions, value="" imposta il modello su null che non è compatibile con filter. Puoi usare solo ngRepeat.

<select ng-model="query.breed"> 
    <option value="">All breeds</option> 
    <option ng-repeat="breed in breeds" value="{{breed}}">{{breed}}</option> 
</select> 
Problemi correlati