Rumah  >  Artikel  >  hujung hadapan web  >  AngularJS menggunakan ngOption untuk melaksanakan contoh senarai drop-down code_AngularJS

AngularJS menggunakan ngOption untuk melaksanakan contoh senarai drop-down code_AngularJS

WBOY
WBOYasal
2016-05-16 15:18:351396semak imbas

Penggunaan senarai lungsur turun dengan mudah

Arahan

ng-option sangat mudah digunakan Anda hanya perlu mengikat dua atribut:

Salah satunya ialah ng-model yang digunakan untuk mendapatkan nilai yang dipilih;

Yang lain ialah tatasusunan elemen yang digunakan oleh ng-options untuk menentukan senarai juntai bawah.


<select ng-model="engineer.currentActivity" class="form-control" ng-options="act for act in activities"></select> 
Pernyataan di atas adalah untuk melaksanakan pengikatan data dua hala antara nilai yang dipilih dan engineer.currentActivity, dan kemudian pilihan dalam senarai ialah setiap nilai dalam aktiviti. Data adalah seperti berikut:


$scope.engineer = {
name: "Dani",
currentActivity: "Fixing bugs"
};
$scope.activities =
[
"Writing code",
"Testing code",
"Fixing bugs",
"Dancing"
]; 
Keputusan operasi adalah seperti berikut:



Demi kecantikan, bootstrap dipetik di sini.


<html ng-app="myApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://apps.bdimg.com/libs/angular.js/1.2.16/angular.min.js"></script>
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css"> 
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</head>
<body>
<div ng-controller="EngineeringController" class="container">
<div class="col-md-12">
{{engineer.name}} is currently: {{ engineer.currentActivity}}
</div>
<div class="col-md-4">
<label for="name">Choose a new activity:</label>
<select ng-model="engineer.currentActivity" class="form-control"
ng-options="act for act in activities"> 
</select>
</div>
</div>
<script type="text/javascript">
var myAppModule = angular.module("myApp",[]);
myAppModule.controller("EngineeringController",["$scope",function($scope){
$scope.engineer = {
name: "Dani",
currentActivity: "Fixing bugs"
};
$scope.activities =
[
"Writing code",
"Testing code",
"Fixing bugs",
"Dancing"
];
}]);
</script>
</body>
</html> 
Objek kompleks, nama senarai tersuai


Kadangkala senarai juntai bawah bukanlah tatasusunan rentetan yang mudah, tetapi mungkin objek json, contohnya:


$scope.activities =
[
{ id: 1, type: "Work" , name: "Writing code" },
{ id: 2, type: "Work" , name: "Testing code" },
{ id: 3, type: "Work" , name: "Fixing bugs" },
{ id: 4, type: "Play" , name: "Dancing" }
]; 
Pada masa ini, data terikat mestilah dalam format yang sama seperti data di sini, sebagai contoh, salin terus salah satu daripadanya:


$scope.engineer = {
name: "Dani" ,
currentActivity: {
id: 3,
type: "Work" ,
name: "Fixing bugs"
}
}; 
Sudah tentu, anda juga boleh menentukannya secara langsung sebagai:


$scope.engineer = {currentActivity:activities[3]} 
Kemudian dalam arahan anda boleh mengulangi nama-nama kotak lungsur di mana senarai itu disambung


<select 
ng-model = "engineer.currentActivity"
class="form-control"
ng-options = "a.name +' (' + a.type + ')' for a in activities" > 
</select > 
Kesan operasi adalah seperti berikut:



Semua kod adalah seperti berikut:






 




{{engineer.name}} is currently: {{ engineer.currentActivity}}
<select ng-model = "engineer.currentActivity" class="form-control" ng-options = "a.name +' (' + a.type + ')' for a in activities" > </select >
Melaksanakan pengumpulan senarai lungsur turun


Malah, pengelompokan sangat serupa dengan contoh sebelumnya. Cuma tukar nilai pilihan-ng dalam ruang kepada yang berikut:


<select ng-model = "engineer.currentActivity"
class="form-control"
ng-options = "a.name group by a.type for a in activities" > 
</select > 
Tambah kumpulan mengikut dan ia akan dikumpulkan mengikut nilai berikut

Semua kod:






 




{{engineer.name}} is currently: {{ engineer.currentActivity}}
<select ng-model = "engineer.currentActivity" class="form-control" ng-options = "a.name group by a.type for a in activities" > </select >
Kenal pasti melalui id


Oleh kerana model ng sebelumnya adalah bersamaan dengan menetapkan nilai pada mulanya. Nilai awal ini ditulis ganti apabila anda memilih pilihan senarai juntai bawah.


Jadi lebih kerap id akan digunakan untuk pengenalan, jadi apabila memulakan tugasan, anda hanya perlu menetapkan id.


$scope.engineer = {
currentActivityId: 3
};
$scope.activities =
[
{ id: 1, type: "Work" , name: "Writing code" },
{ id: 2, type: "Work" , name: "Testing code" },
{ id: 3, type: "Work" , name: "Fixing bugs" },
{ id: 4, type: "Play" , name: "Dancing" }
]; 
Arahan boleh ditulis dalam format berikut


<select 
ng-model = "engineer.currentActivityId"
class="form-control"
ng-options = "a.id as a.name group by a.type for a in activities" > 
</select > 
Dengan nilai di hadapan sebagai, anda boleh menentukan satu-satunya pilihan


Semua kod adalah seperti berikut:





 




current is: {{ engineer.currentActivityId}}
<select ng-model = "engineer.currentActivityId" class="form-control" ng-options = "a.id as a.name group by a.type for a in activities" > </select >
Di atas ialah contoh kod yang dikongsi oleh editor dengan anda kerana menggunakan ngOption untuk melaksanakan senarai juntai bawah dalam AngularJS saya harap ia akan membantu anda.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn