Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >AngularJS Select(选择框)

AngularJS Select(选择框)

原创
作者头像
陈不成i
修改于 2021-07-23 06:23:39
修改于 2021-07-23 06:23:39
2.5K00
代码可运行
举报
文章被收录于专栏:ops技术分享ops技术分享
运行总次数:0
代码可运行

AngularJS 可以使用数组或对象创建一个下拉列表选项。


使用 ng-options 创建选择框

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

实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div ng-app="myApp" ng-controller="myCtrl">
 
<select ng-init="selectedName = names[0]" 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>

ng-init 设置默认选中值。


ng-options 与 ng-repeat

我们也可以使用ng-repeat 指令来创建下拉列表:

实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<select>
<option ng-repeat="x in names">{{x}}</option>
</select>

ng-repeat 指令是通过数组来循环 HTML 代码来创建下拉列表,但 ng-options 指令更适合创建下拉列表,它有以下优势:

使用 ng-options 的选项是一个对象, ng-repeat 是一个字符串。


应该用哪个更好?

假设我们使用以下对象:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$scope.sites = [
    {site : "Google", url : "http://www.google.com"},
    {site : "Runoob", url : "http://www.runoob.com"},
    {site : "Taobao", url : "http://www.taobao.com"}
];

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

实例

使用 ng-repeat:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<select ng-model="selectedSite">
<option ng-repeat="x in sites" value="{{x.url}}">{{x.site}}</option>
</select>

<h1>你选择的是: {{selectedSite}}</h1>

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

实例

使用 ng-options:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<select ng-model="selectedSite" ng-options="x.site for x in sites">
</select>

<h1>你选择的是: {{selectedSite.site}}</h1>
<p>网址为: {{selectedSite.url}}</p>

当选择值是一个对象时,我们就可以获取更多信息,应用也更灵活。


数据源为对象

前面实例我们使用了数组作为数据源,以下我们将数据对象作为数据源。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$scope.sites = {
    site01 : "Google",
    site02 : "Runoob",
    site03 : "Taobao"
};

ng-options 使用对象有很大的不同,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<select ng-model="selectedSite" ng-options="x for (x, y) in sites">
</select>

<h1>你选择的值是: {{selectedSite}}</h1>

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

value 在 key-value 对中也可以是个对象:

实例

选择的值在 key-value 对的 value 中, 这是它是一个对象:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$scope.cars = {
car01 : {brand : "Ford", model : "Mustang", color : "red"},
car02 : {brand : "Fiat", model : "500", color : "white"},
car03 : {brand : "Volvo", model : "XC90", color : "black"}
};

在下拉菜单也可以不使用 key-value 对中的 key , 直接使用对象的属性:

实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<select ng-model="selectedCar" ng-options="y.brand for (x, y) in cars">
</select>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Angularjs基础(五)
AngularJS Select(选项框)     AngularJS 可是使用数组或对象创建一个下拉列表选项。 使用ng-options创建选项框     在AngularJS 中我们可以使用ng-option指令来创建一个下拉列表,列表通过对象和数组循环输出       实例:         <div ng-app="myApp" ng-controller="myCtrl">             <select ng-model="selectedName" ng-opti
用户1197315
2018/01/19
3.4K0
AngularJS系列(五)——下拉框
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
逝兮诚
2019/10/30
1.5K0
【AngularJS】 # AngularJS入门
ng-app 指令定义一个 AngularJS 应用程序。 若不声明,将直接显示表达式。
全栈程序员站长
2022/09/15
23.5K0
【AngularJS】 # AngularJS入门
AngularJS系列之select下拉选择第一个选项为空白的解决办法
今天给大家介绍一下AngularJS系列之select下拉选择第一个选项为空白的解决办法。 相信大家也经常遇到这种情况吧:在使用AngularJS中的select组件开发的时候,莫名其妙的第一个选项就
林老师带你学编程
2018/01/03
3.2K0
【一起来烧脑】一步学会AngularJS系统
AngularJS是一个JavaScript框架 一个用JavaScript编写的库
达达前端
2019/07/18
5.6K0
【一起来烧脑】一步学会AngularJS系统
Angularjs基础(十二)
ng-model-options       描述:规定如何更新模型             实例: 在失去焦点时绑定输入框的值scope 变量中。                 <div ng-app="myApp" ng-controller="myCtrl">                   <input ng-model ="name">                 </div>                 <script>          
用户1197315
2018/01/22
3.1K0
7-进军 angular1.x 表单和事件、模块
通常 AngularJS 应用程序将模块和控制器包含在 JavaScript 文件中。
西南_张家辉
2021/02/02
2.4K0
Angularjs基础(三)
    AngularJS ng-model 指令     ng-model 指令用于绑定应用程序数据到HTML 控制器(input,select,textarea)的值 ng-model指令     ng-model指令可以将输入域的值与AngularJS 创建的变量绑定。       实例:         <div ng-app="myApp" ng-controller="myCtrl">             名字:<input ng-model="name">  
用户1197315
2018/01/19
3.2K0
angularjs小练习(分别通过ng-repeat和ng-option动态生成select下拉框)
本次做一个简单的关于动态生成select的练习   在实现上有两种方式:     其一、通过ng-repeat来实现     其二、通过ng-option来实现     在页面效果上,两种实现的效果都一样     但是在数据选择的数据从操作上有所不同     ng-repeat选中的是其option对应的value值     ng-option选择的是其对应绑定数据的一个object对象   在实际应用中建议采用ng-option实现   代码实例: <!DOCTYPE html> <html xmlns=
小小许
2018/08/30
7900
angularjs小练习(分别通过ng-repeat和ng-option动态生成select下拉框)
轻松构建灵活的表单,试试AngularJS 选择框
在Web开发中,表单是一个非常重要的组件。表单通常包含各种输入字段,例如输入框、复选框和选择框等,用于收集用户的输入数据。AngularJS 提供了一系列的指令和服务,使得表单的开发更加简单、高效。本文将详细介绍 AngularJS 中的选择框(Select)指令,以及如何使用它来构建灵活的表单。
网络技术联盟站
2023/07/05
2620
AngularJS 指令
ng-app 指令告诉 AngularJS,<div> 元素是 AngularJS 应用程序 的"所有者"。
陈不成i
2021/07/23
3.1K0
Angularjs基础(二)
AngularJS 表达式   AngularJS 表达式写在双大括号内:{{expression}}   AngularJS 表达式把数据绑定到HTML,这与ng-bind 指令有异曲同工之妙   AngularJS 将在表达式书写的位置输出数据。   AngularJS 表达式很像JavaScript表达式:他们可以包含文字,运算符和变量。     实例{{5+5}} 或者{{firstName + "" +lastName}} AngularJs 数字   AngularJS 数字就像J
用户1197315
2018/01/19
3.5K0
前端MVC学习总结(二)——AngularJS验证、过滤器、指令
一、验证 angularJS中提供了许多的验证指令,可以轻松的实现验证,只需要在表单元素上添加相应的ng属性,常见的如下所示: <input Type="text" ng-model="" [name
张果
2018/01/04
15.5K0
前端MVC学习总结(二)——AngularJS验证、过滤器、指令
Angularjs下拉联动(2)
上次联动的代码是在网上看到的,可能无法实现我的要求 这次是根据后台要求,自己写的一个联动,当然没有请求接口,就是单独写个固定值 演示地址:http://runjs.cn/detail/dta6edch 演示只提供了第一个选项的联动,后面没写,最后的属性“开关”和“温度”都写了,为了突出不同 1.联动的思路 1.首先是选择总类别 2.总类别选择后,会关联出设备 3.设备选择后,会关联出属性 4.属性选择后,会根据属性的不同,关联出不同的项目 2.代码 1)设备类别下拉 html <select n
治电小白菜
2020/08/25
1.6K0
Angularjs下拉联动(2)
AngularJS Scope(作用域)
Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带。
陈不成i
2021/07/23
1.5K0
angularJS学习之路(六)---指令
一个东西需要说明:根据HTML标准,布尔属性代表一个true或者false值,当这个属性出现的时候,这个属性的值就是true, 无论实际值是什么,如果未出现,这个属性的值就是false
wust小吴
2019/07/08
1.7K0
11-angular 实例学习-2
一些重要的 demo dropList <div ng-app="myApp" ng-controller="myCtrl" > <select ng-model="adStyle" ng-change="look();" > <option value="0">全部广告类型option> <option value="1">图片广告option> <option value="2">图音视广告op
西南_张家辉
2021/02/02
2.3K0
AngularJS系列之常用指令
这节给大家介绍一下AngularJS中一些常用的指令,例如:ng-app、ng-init、ng-repeat、ng-model等等之类的指令。 那什么是AngularJS的指令呢,其实就是相当于HTM
林老师带你学编程
2018/01/03
2.2K0
Angularjs基础(十一)
ng-csp       描述:修改内容的安全策略       实例: 修改AngularJS 中关于"eval"的行为方式及内联样式;           <body ng-app="" ng-csp>       定义和用法           ng-csp 指令用于修改AngularJS 的安全策略。           如果使用了ng-csp指令,AngularJS 执行eval 函数,但允许注入内联样式。           设置ng-csp 指令为no-unsafe-eval
用户1197315
2018/01/22
2.4K0
AngularJS 使用ngOption实现下拉列表
最近使用到了ngOption实现下拉选择列表,由于需要实现分组等功能,百度了下没有太好的文章,就百度到一篇英文的帖子,按照其中的代码很顺利的搞定了。 本篇根据文中代码,详细讲述下如何实现下拉列表 更多内容参考:AngularJS知识总结 下拉列表的简单使用 ng-option指令使用很简单,只需要绑定两个属性: 一个是ng-model用于获取选定的值; 另一个是ng-options用于确定下拉列表的元素数组。 <select ng-model="engineer.currentActivity"
用户1154259
2018/01/17
2.3K0
AngularJS 使用ngOption实现下拉列表
相关推荐
Angularjs基础(五)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档