AngularJS Select(选择框)使用详解


Posted in Javascript onJanuary 18, 2017

1、Select概述

AngularJS 中可以使用 ng-option 指令来创建一个下拉列表,列表项通过对象和数组循环输出

<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 = ["Google", "Runoob", "Taobao"];
  });
</script>

2、数据源为对象

选择的值为在 key-value 对中的key:

<div ng-app="myApp" ng-controller="myCtrl">
  <p>选择一辆车:</p>
  <select ng-model="selectedCar" ng-options="x for (x, y) in cars">
  </select>

  <h1>你选择的是: {{selectedCar.brand}}</h1>
  <h2>模型: {{selectedCar.model}}</h2>
  <h3>颜色: {{selectedCar.color}}</h3>

  <p>注意选中的值是一个对象。</p>
</div>

<script>
  var app = angular.module('myApp', []);
  app.controller('myCtrl', function($scope) {
    $scope.cars = {
      car01 : {brand : "Ford", model : "Mustang", color : "red"},
      car02 : {brand : "Fiat", model : "500", color : "white"},
      car03 : {brand : "Volvo", model : "XC90", color : "black"}
    }
  });
</script>

选择的值为在 key-value 对中的value对象一个属性:

<div ng-app="myApp" ng-controller="myCtrl">
  <p>选择一辆车:</p>
  <select ng-model="selectedCar" ng-options="y.brand for (x, y) in cars">
  </select>
  <p>你选择的是: {{selectedCar.brand}}</p>
  <p>型号为: {{selectedCar.model}}</p>
  <p>颜色为: {{selectedCar.color}}</p>
  <p>下拉列表中的选项也可以是对象的属性。</p>
</div>

<script>
  var app = angular.module('myApp', []);
  app.controller('myCtrl', function($scope) {
    $scope.cars = {
      car01 : {brand : "Ford", model : "Mustang", color : "red"},
      car02 : {brand : "Fiat", model : "500", color : "white"},
      car03 : {brand : "Volvo", model : "XC90", color : "black"}
    }
  });
</script>

3、ng-options 与 ng-repeat

也可以使用ng-repeat 指令来创建下拉列表。
ng-repeat 指令是通过数组来循环 HTML 代码来创建下拉列表,但 ng-options 指令更适合创建下拉列表,它有以下优势:
使用 ng-options 的选项的一个对象, ng-repeat 是一个字符串。

1)ng-repeat 有局限性,选择的值是一个字符串:

<div ng-app="myApp" ng-controller="myCtrl">
  <p>选择网站:</p>
  <select ng-model="selectedSite">
  <option ng-repeat="x in sites" value="{{x.url}}">{{x.site}}</option>
  </select>
  <h1>你选择的是: {{selectedSite}}</h1>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.sites = [
    {site : "Google", url : "http://www.google.com"},
    {site : "Runoob", url : "http://www.runoob.com"},
    {site : "Taobao", url : "http://www.taobao.com"}
  ];
});
</script>

2)使用 ng-options 指令,选择的值是一个对象:

<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>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.sites = [
    {site : "Google", url : "http://www.google.com"},
    {site : "Runoob", url : "http://www.runoob.com"},
    {site : "Taobao", url : "http://www.taobao.com"}
  ];
});
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
纯js实现的论坛常用的运行代码的效果
Jul 15 Javascript
基于jQuery的简单的列表导航菜单
Mar 02 Javascript
关于IE BUG与字符串截取substr的解决办法
Apr 10 Javascript
小白谈谈对JS原型链的理解
May 03 Javascript
详解Vue-Cli 异步加载数据的一些注意点
Aug 12 Javascript
详解Vue2.0 事件派发与接收
Sep 05 Javascript
基于Vue开发数字输入框组件
Dec 19 Javascript
vue axios请求频繁时取消上一次请求的方法
Nov 10 Javascript
微信小程序之事件交互操作实例分析
Dec 03 Javascript
微信小程序自定义多列选择器使用详解
Jun 21 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
Apr 11 Javascript
游戏开发中如何使用CocosCreator进行音效处理
Apr 14 Javascript
基于JavaScript实现屏幕滚动效果
Jan 18 #Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
Jan 18 #Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
Jan 18 #Javascript
原生Javascript插件开发实践
Jan 18 #Javascript
js实现炫酷的左右轮播图
Jan 18 #Javascript
jQuery实现别踩白块儿网页版小游戏
Jan 18 #Javascript
工厂模式在JS中的实践
Jan 18 #Javascript
You might like
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
JS延时器提示框的应用实例代码解析
2016/04/27 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
vuex的使用步骤
2021/01/06 Vue.js
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
Django的分页器实例(paginator)
2017/12/01 Python
Python判断两个对象相等的原理
2017/12/12 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
护理专科自荐书范文
2014/02/18 职场文书
公司营业员的自我评价
2014/03/04 职场文书
明信片寄语大全
2014/04/08 职场文书
表彰大会策划方案
2014/05/13 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电