AngularJS-rullgardinsmeny
- Föregående sida AngularJS tabeller
- Nästa sida AngularJS SQL
AngularJS tillåter dig att skapa rullgardinsmenyer baserat på objekt eller element i en array.
Skapa en rullgardinsmeny med ng-options
Om du vill skapa en rullgardinsmeny baserat på ett objekt eller en array i AngularJS, bör du använda ng-options
Instruktion:
Exempel
<div ng-app="myApp" ng-controller="myCtrl"> <select ng-model="selectedName" ng-options="x for x in names"> </select> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.names = ["Emil", "Tobias", "Linus"]; }); </script>
ng-options med ng-repeat
Du kan också använda ng-repeat
Använd instruktionen för att skapa samma rullgardinsmeny:
Exempel
<select> <option ng-repeat="x in names">{{x}}</option> </select>
På grund av ng-repeat
Instruktionen repeterar en HTML-kod för varje objekt i en array, så den kan användas för att skapa alternativ i rullgardinsmenyer, men ng-options
Instruktionen är designad specifikt för att fylla ut alternativ i rullgardinsmenyer.
Vilken ska användas?
Du kan använda ng-repeat
Instruktion och ng-options
Instruktion:
Anta att du har ett objektarray:
$scope.cars = [ {model : "Ford Mustang", color : "red"}, {model : "Fiat 500", color : "white"}, {model : "Volvo XC90", color : "black"} ];
Exempel
Använd ng-repeat
:
<select ng-model="selectedCar"> <option ng-repeat="x in cars" value="{{x.model}}">{{x.model}}</option> </select> <h1>Du valde: {{selectedCar}}</h1>
När du använder värde som objekt, använd ng-value
med value
:
Exempel
ersätt ng-repeat
Används som objekt:
<select ng-model="selectedCar"> <option ng-repeat="x in cars" ng-value="{{x}}">{{x.model}}</option> </select> <h1>Du valde en {{selectedCar.color}} {{selectedCar.model}}</h1>
Exempel
Använd ng-options
:
<select ng-model="selectedCar" ng-options="x.model for x in cars"> </select> <h1>Du valde: {{selectedCar.model}}</h1> <p> dess färg är: {{selectedCar.color}}</p>
När det valda värdet är ett objekt, kan det innehålla mer information och ditt program kan bli mer flexibelt.
Vi kommer att använda ng-options
instruktioner.
som datakälla för objekt
I föregående exempel var datakällan en array, men vi kan också använda objekt.
Anta att du har ett objekt med nyckel-värde-pa
$scope.cars = { car01 : "Ford", car02 : "Fiat", car03 : "Volvo" };
ng-options
uttrycket i egenskaperna är något annorlunda för objekt:
Exempel
Använd objekt som datakälla,x
representerar nyckeln,y
representerar värdet:
<select ng-model="selectedCar" ng-options="x for (x, y) in cars"> </select> <h1>Du valde: {{selectedCar}}</h1>
Valda värdet kommer alltid att vara i nyckel-värde-paretVärde.
i nyckel-värde-paretVärdekan också vara ett objekt:
Exempel
Valda värdet kommer fortfarande att vara i nyckel-värde-paretVärde,men denna gång är det ett objekt:
$scope.cars = { car01 : {brand : "Ford", model : "Mustang", color : "red"}, car02 : {brand : "Fiat", model : "500", color : "white"}, car03 : {brand : "Volvo", model : "XC90", color : "black"} };
Alternativen i rullgardinslistan behöver inte vara i nyckel-värde-paretNyckel,det kan också vara ett värde, eller en egenskap på ett värdeobjekt:
Exempel
<select ng-model="selectedCar" ng-options="y.brand for (x, y) in cars"> </select>
- Föregående sida AngularJS tabeller
- Nästa sida AngularJS SQL