在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 : ""},{site : "bokeyuan", url : ""},{site : "Taobao", url : ""}];});</script>