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 相关文章推荐
用jquery ajax获取网站Alexa排名的代码
Dec 12 Javascript
用JS实现一个TreeMenu效果分享
Aug 28 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
Jan 23 Javascript
js 模仿锚点定位的实现方法
Nov 19 Javascript
AngularJS constant和value区别详解
Feb 28 Javascript
JavaScript Canvas绘制圆形时钟效果
Aug 20 Javascript
js脚本编写简单刷票投票系统
Jun 27 Javascript
微信小程序实现动态获取元素宽高的方法分析
Dec 10 Javascript
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
Aug 26 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 jQuery
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
Sep 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
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
Js 随机数产生6位数字
2010/05/13 Javascript
jquery中this的使用说明
2010/09/06 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
基于jquery的$.ajax async使用
2011/10/19 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
Bootstrap CSS使用方法
2016/12/23 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
vue better-scroll插件使用详解
2018/01/25 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Python使用configparser库读取配置文件
2020/02/22 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
美国网上眼镜供应商:LEOTONY(眼镜、RX太阳镜和太阳镜)
2017/10/31 全球购物
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
小学开学标语
2014/07/01 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
创先争优承诺书
2015/01/20 职场文书
logback 实现给变量指定默认值
2021/08/30 Java/Android