AngularJS حدد المربعات
يتيح لك AngularJS إنشاء قوائم منسدلة بناءً على عناصر في مصفوفة أو كائن.
إنشاء مربع اختيار باستخدام خيارات ng
إذا كنت تريد إنشاء قائمة منسدلة ، بناءً على كائن أو مصفوفة في AngularJS ، فيجب عليك استخدام ng-options
الأمر:
مثال
<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-repeat
الأمر لإنشاء نفس القائمة المنسدلة:
مثال
<select>
<option ng-repeat="x in names">{{x}}</option>
</select>
نظرًا لأن ng-repeat
التوجيه يكرر كتلة من تعليمات HTML البرمجية لكل عنصر في مصفوفة ، فيمكن استخدامه لإنشاء خيارات في قائمة منسدلة ، ولكن ng-options
التوجيه تم إنشاؤه خصيصًا لملء قائمة منسدلة بالخيارات.
ماذا أستخدم؟
يمكنك استخدام كل من ng-repeat
التوجيه ng-options
والتوجيه:
افترض أن لديك مجموعة من العناصر:
$scope.cars = [
{model : "Ford Mustang", color :
"red"},
{model : "Fiat 500", color : "white"},
{model : "Volvo XC90", color : "black"}
];
مثال
باستخدام ng-repeat
:
<select ng-model="selectedCar">
<option ng-repeat="x in cars" value="{{x.model}}">{{x.model}}</option>
</select>
<h1>You selected: {{selectedCar}}</h1>
عند استخدام القيمة ككائن ، استخدم ng-value
ما يلي value
:
مثال
استخدام ng-repeat
ككائن:
<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>
مثال
باستخدام ng-options
:
<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>
عندما تكون القيمة المحددة كائنًا ، يمكن أن تحتوي على مزيد من المعلومات ، ويمكن أن يكون تطبيقك أكثر مرونة.
سوف نستخدم ng-options
التوجيه في هذا البرنامج التعليمي.
مصدر البيانات ككائن
في الأمثلة السابقة ، كان مصدر البيانات عبارة عن مصفوفة ، ولكن يمكننا أيضًا استخدام كائن.
افترض أن لديك كائنًا به أزواج مفتاح - قيمة:
$scope.cars = {
car01 : "Ford",
car02 : "Fiat",
car03 : "Volvo"
};
يختلف التعبير ng-options
الموجود في السمة قليلاً بالنسبة للكائنات:
مثال
يمثل استخدام كائن كمصدر بيانات x
المفتاح
y
ويمثل القيمة:
<select ng-model="selectedCar" ng-options="x for (x, y) in cars">
</select>
<h1>You selected: {{selectedCar}}</h1>
ستكون القيمة المحددة دائمًا هي القيمة في زوج المفتاح والقيمة .
يمكن أن تكون القيمة في زوج المفتاح والقيمة كائنًا أيضًا:
مثال
ستظل القيمة المحددة هي القيمة في زوج المفتاح والقيمة ، هذه المرة فقط هي كائن:
$scope.cars = {
car01 : {brand : "Ford", model : "Mustang", color :
"red"},
car02 : {brand : "Fiat", model : "500", color : "white"},
car03 : {brand : "Volvo", model : "XC90", color : "black"}
};
لا يجب أن تكون الخيارات الموجودة في القائمة المنسدلة هي المفتاح في زوج قيمة المفتاح ، بل يمكن أن تكون أيضًا قيمة أو خاصية كائن القيمة:
مثال
<select ng-model="selectedCar" ng-options="y.brand for (x, y) in cars">
</select>