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 相关文章推荐
不错的一个日期输入 动态
Nov 06 Javascript
jquery 插件学习(四)
Aug 06 Javascript
获取鼠标在div中的相对位置的实现代码
Dec 30 Javascript
JavaScript中奇葩的假值示例应用
Mar 11 Javascript
javascript+canvas制作九宫格小程序
Dec 28 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
Jun 04 Javascript
浅谈JavaScript对象的创建方式
Jun 13 Javascript
js常用DOM方法详解
Feb 04 Javascript
详解vue2.0脚手架的webpack 配置文件分析
May 27 Javascript
jQuery中内容过滤器简单用法示例
Mar 31 jQuery
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
Aug 06 Javascript
Vue表单提交点击事件只允许点击一次的实例
Oct 23 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
codeigniter中测试通过的分页类示例
2014/04/17 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
php简单复制文件的方法
2016/05/09 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
客户端验证用户名和密码的方法详解
2016/06/16 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
2017/05/11 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
jquery实现楼层滚动效果
2018/01/01 jQuery
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
Eclipse + Python 的安装与配置流程
2013/03/05 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
护理专科毕业生自荐书范文
2014/02/19 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
mysql配置SSL证书登录的实现
2021/09/04 MySQL