AngularJS select


AngularJS massiv yoki obyektdagi elementlar asosida ochiluvchi ro‘yxatlar yaratish imkonini beradi.


ULASHISH

ng-options yordamida select ro‘yxatini yaratish

AngularJS’da obyekt yoki massiv asosida ochiluvchi ro‘yxat yaratmoqchi bo‘lsangiz, ng-options direktivasidan foydalanishingiz kerak:

Misol

<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>
O‘zingiz sinab ko‘ring »

ng-options va ng-repeat

Xuddi shu ochiluvchi ro‘yxatni yaratish uchun ng-repeat direktivasidan ham foydalanishingiz mumkin:

Misol

<select>   <option ng-repeat="x in names">{{x}}</option> </select>
O‘zingiz sinab ko‘ring »

ng-repeat direktivasi massivdagi har bir element uchun HTML kod blokini takrorlagani sababli, undan ochiluvchi ro‘yxatda variantlar (option) yaratish uchun foydalanish mumkin, ammo ng-options direktivasi aynan ochiluvchi ro‘yxatni variantlar bilan to‘ldirish uchun yaratilgan.

Qaysi biridan foydalanish kerak?

ng-repeat direktivasidan ham, ng-options direktivasidan ham foydalanishingiz mumkin:

Sizda obyektlar massivi bor deb faraz qilaylik:

$scope.cars = [   {model : "Ford Mustang", color : "red"},   {model : "Fiat 500", color : "white"},   {model : "Volvo XC90", color : "black"} ];

Misol

ng-repeat yordamida:

<select ng-model="selectedCar">   <option ng-repeat="x in cars" value="{{x.model}}">{{x.model}}</option> </select> <h1>You selected: {{selectedCar}}</h1>
O‘zingiz sinab ko‘ring »

Qiymatni obyekt sifatida ishlatganda value o‘rniga ng-value ishlating:

Misol

ng-repeat bilan qiymatni obyekt sifatida ishlatish:

<select ng-model="selectedCar">   <option ng-repeat="x in cars" ng-value="{{x}}">{{x.model}}</option> </select> <h1>You selected a {{selectedCar.color}} {{selectedCar.model}}</h1>
O‘zingiz sinab ko‘ring »

Misol

ng-options yordamida:

<select ng-model="selectedCar" ng-options="x.model for x in cars"> </select> <h1>You selected: {{selectedCar.model}}</h1> <p>Its color is: {{selectedCar.color}}</p>
O‘zingiz sinab ko‘ring »

Tanlangan qiymat obyekt bo‘lganda u ko‘proq ma’lumotni saqlashi mumkin va ilovangiz yanada moslashuvchan bo‘ladi.

Ushbu darslikda ng-options direktivasidan foydalanamiz.



Ma’lumotlar manbai sifatida obyekt

Oldingi misollarda ma’lumotlar manbai massiv edi, ammo obyektdan ham foydalanishimiz mumkin.

Sizda kalit-qiymat juftliklariga ega obyekt bor deb faraz qilaylik:

$scope.cars = {   car01 : "Ford",   car02 : "Fiat",   car03 : "Volvo" };

Obyektlar uchun ng-options atributidagi ifoda biroz farq qiladi:

Misol

Obyektni ma’lumotlar manbai sifatida ishlatganda x kalitni, y esa qiymatni ifodalaydi:

<select ng-model="selectedCar" ng-options="x for (x, y) in cars"> </select> <h1>You selected: {{selectedCar}}</h1>
O‘zingiz sinab ko‘ring »

Tanlangan qiymat har doim kalit-qiymat juftligidagi qiymat bo‘ladi.

Kalit-qiymat juftligidagi qiymat obyekt ham bo‘lishi mumkin:

Misol

Tanlangan qiymat baribir kalit-qiymat juftligidagi qiymat bo‘ladi, faqat bu safar u obyekt:

$scope.cars = {   car01 : {brand : "Ford", model : "Mustang", color : "red"},   car02 : {brand : "Fiat", model : "500", color : "white"},   car03 : {brand : "Volvo", model : "XC90", color : "black"} };
O‘zingiz sinab ko‘ring »

Ochiluvchi ro‘yxatdagi variantlar kalit-qiymat juftligidagi kalit bo‘lishi shart emas, ular qiymat yoki qiymat obyektining xususiyati ham bo‘lishi mumkin:

Misol

<select ng-model="selectedCar" ng-options="y.brand for (x, y) in cars"> </select>
O‘zingiz sinab ko‘ring »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!