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 相关文章推荐
判断javascript的数据类型(示例代码)
Dec 11 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
Jul 05 Javascript
javascript实现很浪漫的气泡冒出特效
Sep 05 Javascript
深入理解Angularjs中的$resource服务
Dec 31 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
Feb 12 Javascript
JavaScript自定义文本框光标
Mar 05 Javascript
Angular2使用Augury来调试Angular2程序
May 21 Javascript
微信小程序的分类页面制作
Jun 27 Javascript
Express之托管静态文件的方法
Jun 01 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
vue 封装 Adminlte3组件的实现
Mar 18 Javascript
JavaScript实现图片放大预览效果
Nov 02 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
header()函数使用说明
2006/11/23 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
基于jQuery的图片剪切插件
2011/08/03 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
jQuery中last()方法用法实例
2015/01/06 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
2016/02/17 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
vue v-for 使用问题整理小结
2019/08/04 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
Python中使用Inotify监控文件实例
2015/02/14 Python
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
公务员总结性个人自我评价
2013/12/05 职场文书
玲玲的画教学反思
2014/02/04 职场文书
宣传活动总结范文
2014/07/01 职场文书
推普周活动总结
2014/08/28 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书