AngularJS Select(选择框)
在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>