在AngularJS中可以使用數組或對象創建一個下拉列表對象選項。
1、使用ng-options創建選擇框
<div ng-app="my" ng-controller="con"> <p>請選擇城市:</p> <select ng-model="selected" ng-options="x for x in city"></select> </div> <script> var app=angular.module("my",[]); app.controller("con",function($scope){ $scope.city=["北京","上海","廣州","福建","深圳"]; }) </script>
ng-options 指令來創建一個下拉列表,列表項是通過對象和數組循環輸出。
ng-repeat指令也可以實現下拉列表哦!!!它是通過數組來循環 HTML 代碼來創建下拉列表:
實現代碼:
<!--ng-repeat--> <div ng-app="my" ng-controller="con"> <p>請選擇城市:</p> <select> <option ng-repeat="x in city">{{x}}</option> </select> </div> <script> var app=angular.module("my",[]); app.controller("con",function($scope){ $scope.city=["北京","上海","廣州","福建","深圳"]; }) </script>
由於ng-options指令具有以下的優勢,因此它更適合創建下拉列表。
1、ng-options 的選項是一個對象。而ng-repeat 是一個字符串
2、ng-options指令選擇的值是一個對象,而ng-repeat具有局限性,選擇的值是一個字符串
當選擇值是一個對象時,我們就可以獲取更多信息,應用也更靈活。
<div ng-app="myApp" ng-controller="myCtrl"> <p>選擇網站:</p> <select ng-model="selectedSite" ng-options="x.site for x in sites"> </select> <h1>你選擇的是: {{selectedSite.site}}</h1> <p>網址為: {{selectedSite.url}}</p> </div> <div ng-app="my" ng-controller=""> <select ng-model="selectedSite"> <option ng-repeat="x in sites" value="{{x.url}}">{{x.site}}</option> </select> <h1>你選擇的網址:(ng-repeat): {{selectedSite}}</h1> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.sites = [ {site : "Google", url : "http://www.google.com"}, {site : "bokeyuan", url : "https://www.cnblogs.com"}, {site : "Taobao", url : "http://www.taobao.com"} ]; }); </script>