La direttiva ng-options può essere utilizzata per generare dinamicamente il contenuto di una select ed andrebbe utilizzata in luogo di ng-repeat, perché offre performance migliori.
Supponiamo di avere una serie di opzioni, all'interno del solito controller:
app.controller('peopleController', ['$scope', function($scope) { $scope.provinces = [ {name:'Milano', area:'Nord', disabled:false}, {name:'Torino', area:'Nord', disabled:false}, {name:'Roma', area:'Centro', disabled:true}, {name:'Bologna', area:'Centro', disabled:false}, {name:'Napoli', area:'Sud', disabled:false}, {name:'Palermo', area:'Sud', disabled:false} ]; // impostiamo la provincia selezionata $scope.currentProvince = $scope.provinces[0]; }]);
Per elencare gli elementi presenti nell'array, ci basterà questa sintassi:
<select ng-model="currentProvince" ng-options="province.name for province in provinces"> <option value="">Seleziona un valore</option> </select>
Utilizzando l'attributo ng-options andiamo a recuperare, utilizzando una particolare sintassi, la proprietà specifica che vogliamo utilizzare. Da notare anche l'uso dell'attributo ng-model, che utilizzeremo per impostare e leggere il valore selezionato e che funziona con il two-way databinding di AngularJS.
Per raggruppare gli elementi in base ad una proprietà, ci basterà utilizzare questa sintassi:
<select ng-model="currentProvince" ng-options="province.name group by province.area for province in provinces"> </select>
Mentre per disabilitare eventuali elementi, dovremo sfruttare questa forma, indicando la proprietà che imposta il campo come disabilitato:
<select ng-model="currentProvince" ng-options="province.name group by province.area disable when province.disabled for province in provinces"> </select>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Anonimizzare i dati sensibili nei log di Azure Front Door
Estrarre dati randomici da una lista di oggetti in C#
Ordinare randomicamente una lista in C#
Potenziare la ricerca su Cosmos DB con Full Text Search
Rendere le variabili read-only in una pipeline di Azure DevOps
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Eseguire query in contemporanea con EF
Introduzione ai web component HTML
Scrivere selettori CSS più semplici ed efficienti con :is()
Loggare le query più lente con Entity Framework
Configurare lo startup di applicazioni server e client con .NET Aspire
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
I più letti di oggi
- Creare un router per Single Page Application con l'evento navigate
- Serializzazione e deserializzazione JSON in JavaScript
- Utilizzare app-shell per rendere un'applicazione Angular più responsiva alla partenza
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!