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 相关文章推荐
[Web]防止用户复制页面内容和另存页面的方法
Feb 06 Javascript
javascript 进度条 实现代码
Jul 30 Javascript
有趣的JavaScript数组长度问题代码说明
Jan 20 Javascript
jquery简单实现鼠标经过导航条改变背景图
Dec 17 Javascript
如何实现textarea里的不同文本显示不同颜色
Jan 20 Javascript
JavaScript中实现map功能代码分享
Jun 11 Javascript
js中url对象化管理分析
Dec 29 Javascript
微信 jssdk 签名错误invalid signature的解决方法
Jan 14 Javascript
jQuery实现消息弹出框效果
Dec 10 jQuery
js实现简易ATM功能
Oct 27 Javascript
JavaScript十大取整方法实例教程
Dec 03 Javascript
javascript局部自定义鼠标右键菜单
Dec 08 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
SONY SRF-M100的电路分析
2021/03/02 无线电
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
php字符串函数学习之substr()
2015/03/27 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
yii2使用gridView实现下拉列表筛选数据
2017/04/10 PHP
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
input框中的name和id的区别
2016/11/16 Javascript
js省市区级联查询(插件版&amp;无插件版)
2017/03/21 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
python 合并文件的具体实例
2013/08/08 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
python数据分析:关键字提取方式
2020/02/24 Python
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
经济学博士求职自荐信范文
2013/11/23 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
宣传口号大全
2014/06/16 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
出租车拒载检讨书
2015/01/28 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
家属联谊会致辞
2015/07/31 职场文书
初中物理教学反思
2016/02/19 职场文书
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL