[Angularjs]ng-select和ng-options

angular里ng-optionsng-select是如何使用的? 这里是修真院前端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析前端知识/技能,本篇分享的是: 【angular里ng-optionsng-select是如何使用的? 】 腾讯视频 ng-optionsng-select都属于angluar里的作用在表格或者下拉菜单的标签。 ng-op... 阅读详情
ng-select

ng-select用来将数据同HTML的<select>标签进行绑定。这个指令可以和ng-model以及ng-options指令一起使用,构建精细且表现良好的动态表单。

ng-options的值可以是一个内涵表达式(comprehension expression),其实这只是一种有趣的说法,简单来说就是它可以接收一个数组或者对象,并对她们进行循环,将内部的内容提供给select标签内部的选项。它可以是一下两种形式。

1、数组作为数据源

用数组中的值做标签。

用数组中的值作为选中的标签。

用数组中的值做标签组。

用数组中的值作为选中的标签组。

2、对象作为数据源

用对象的键-值(key-value)做标签。

用对象的键-值作为选中的标签。

用对象的键-值作为标签组。

用对象的键-值作为选中的标签组。


一个例子
<!DOCTYPE html>
<html xmlns="" ng-app="app">
<head>
<title>select</title>
<script src="JS/"></script>
<script>
var app = angular.module('app', []);
app.controller('selectController', function ($scope) {
$scope.mycity = '北京';
$scope.Cities = [{ id: 1, name: '北京' }, { id: 2, name: '上海' }, { id: 3, name: '广州' }];
});
</script>
</head>
<body>
<div ng-controller="selectController">
<select ng-model="mycity" ng-options="city for city in Cities"></select>
</div>
</body>
</html>

查看一下dom

你会发现,上面的option中的text都是对象,这也很容易理解,因为cities数组的每一项都是一个对象,绑定的时候将以对象直接绑定上。那么我们如何只让它显示name属性呢?

    <div ng-controller="selectController">
<select ng-model="mycity" ng-options="city.name for city in Cities"></select>
</div>

直接点出属性即可。再查看下dom数。

值已经显示出来,但是并不是太完美,因为第一项默认选中的竟然没有值,那么接下来我们指定默认值。

  $scope.mycity = '北京';

加上这句代码,并不能解决问题,我们仍需修改ng-options

<select ng-model="mycity" ng-options="city.name as city.name for city in Cities"></select>
<select ng-model="mycity" ng-options="k as v for (k,v)in obj"></select>   // k作为option 的 value字段,绑定到ng-model上,v代表显示的选项内容

我们再查看下dom

ng-options有以下格式的语法

for array data sources:

    • label for value in array
    • select as label for value in array
    • label group by group for value in array
    • select as label group by group for value in array track by trackexpr

for object data sources:

    • label for (key , value) in object
    • select as label for (key , value) in object
    • label group by group for (key, value) in object
    • select as label group by group for (key, value) in ob

在看一个分组的例子,为cities数组加上group属性,并按照group分组:

<!DOCTYPE html>
<html xmlns="" ng-app="app">
<head>
<title>select</title>
<script src="JS/"></script>
<script>
var app = angular.module('app', []);
app.controller('selectController', function ($scope) {
$scope.mycity = '北京';
$scope.Cities = [{ id: 1, name: '北京', group: '中国' }, { id: 2, name: '上海', group: '中国' }, { id: 3, name: '广州',group:'中国' }];
});
</script>
</head>
<body>
<div ng-controller="selectController">
<select ng-model="mycity" ng-options="city.name as city.name group by city.group for city in Cities"></select>
</div>
</body>
</html>

结果

双向绑定

这里已经指定了ng-model,获取选中的值,也非常方便了。

<!DOCTYPE html>
<html xmlns="" ng-app="app">
<head>
<title>select</title>
<script src="JS/"></script>
<script>
var app = angular.module('app', []);
app.controller('selectController', function ($scope) {
$scope.mycity = '北京';
$scope.Cities = [{ id: 1, name: '北京', group: '中国' }, { id: 2, name: '上海', group: '中国' }, { id: 3, name: '广州', group: '中国' }];
});
</script>
</head>
<body>
<div ng-controller="selectController">
<select ng-model="mycity" ng-options="city.name as city.name group by city.group for city in Cities"></select>
<h1>欢迎来到{{mycity}}</h1>
</div>
</body>
</html>
AngularJS进阶(四十二)ng-options渲染的第一项为空问题分析及解决方案_angular1 option 的value值 赋值0 会展示不出数据来(1) 小编综合了阿里的面试题做了一份前端面试题PDF文档,里面有面试题的详细解析开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】 阅读详情

相关推荐

Window10 intel realsense D435安装并实现opencv显示realsense读取的彩色深度数据(QT+openCV+rsD35)

(1)点击"官方指南" 来到下载页,-&gt;最新的稳定版本发布 (本人下的2.16.5,现在最新2.17.0) 不需要做开发,只要下载Intel RealSense Viewer就好,这个就是相机的可视化界面,简洁明了。对应的安装包是Intel.RealSense.Viewer.exe。 本人的毕设要用到深度图做开发,所以安装Intel.RealSense.SDK.exe,SDK...

Pabebe的博客 1万+

ng-select:具有单个多个选择功能的Angular选择库

NG2选择 具有单个多个功能的Angular选择库。 npm install --save @jaspero/ng-select 演示可以在找到 设置 进口JasperoSelectModule在@NgModule : @ NgModule ( { imports : [ JasperoSelectModule ] , declarations : [ AppComponent ] , bootstrap : [ AppComponent ] } ) export class AppModule { } 如何使用 要使用该库,只需将组件添加到模板中: < jaspero> < / jaspero - select > 选项 您可以将以下输入传递给组件: 名称 类型 描述 默认 选项 选择下拉列表的选项 任何[

记一次Redis出问题及解决方案

Q1: redis服务关闭前确认数据还是在的,重启后发现一条数据都没了,key* 查也是空的 A1: 经仔细检查发现redis.conf配置文件配置的数据存储目录配置的是dir ./ 也就是相对目录,也就是说在哪个目录执行redis-server redis.config启动命令 redis数据就会存到哪个目录,同样就会加载哪个目录下的数据文件(dump.rdb),前后两次启动命令的位置不一样导致第二次启动没有加载到(dump.rdb)文件,从而导致查不出数据 Q2:springboot 集成r

u010013928的博客 3041

ng-select:Angular 原生选择组件

`ng-select` 是一个基于 Angular 框架的原生选择组件,主要用于构建灵活且功能丰富的下拉选择框。该项目的主要编程语言是 TypeScript,它充分利用了 Angular 的特性来提供高性能可定制的选择组件。 ## 项目核心功能 `ng-select` 提供了多种核心功能,使其成为开发者在构建复杂表单用户界面时的理想选择: 1. **自定义绑定**:支持将选择框绑定到属性...

gitblog_00660的博客 1270

ng-options用法详解

1、ng-options指令用途: 在表达式中使用数组或对象来自动生成一个select中的option列表。ng-optionsng-repeat很相似,很多时候可以用ng-repeat来代替ng-options。但是ng-options提供了一些好处,例如减少内存提高速度,以及提供选择框的选项来让用户选择。当select中一个选项被选择,该选项将会使用ng-model自动绑定到对应数据上。如果你想设一个默认值,可以像这样:$scope.selected = $scope.collection[3]。 1

qq_43437571的博客 4260

angularjs selectng-repeatng-options的区别及选中问题

最近是项目中用到了angularjsselect标签,由于是初次学习摸索使用,故在此过程中遇到了一些坑,在此总结出来,供大家一起学习,探讨。首先定义一个下拉数组供说明使用:var optItems1 = [{id:1,text:'武汉'},{id:2,text:'北京'},{id:3,text:'杭州'}]; var optItems2 = [{id:'1',text:'武汉'},{id:'2'...

William0326的博客 3716

Angularjsng-selectng-options的用法详解

最近由于项目需要,学了一段时间的angularjs,发现还是比较容易上手的,里面有很多地方,的确震撼了自己。这里就简单的介绍一下angularjsng-selectng-options的用法。 一、ng-select ng-select用来将数据同HTML的标签进行绑定。这个指令可以ng-model以及ng-options指令一起使用,构建精细且表现良好的动态表单。 ng-opti

js_admin的博客 2785

angularjs: ng-selectng-options

angular.js有一个很强大的指令: ng-select 它可以帮助你通过数据模型来创建select元素.它很好的支持了select标签的语法,但是却有点坑. 假设有如下一段json数据: 复制代码 { "myOptions": [ { "id": 106, "group": "Group 1"...

143

angularJS- ng-options ng-repeat创建select

&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"&gt;&lt;/script&gt; &l

一叶君 664

ng-select

ng-select用来将数据同HTML的元素进行绑定。这个指令可以ng-model以及ng-options指令一同使用,构建精细且表现优良的动态表单。 ng-options的值可以是一个内涵表达式(comprehension expression),其实这只是一种有趣的说法,简单来说就是它可以接受一个数组或对象,并对它们进行循环,将内部的内容提供给select标签内部的选项

光英的记忆博客 883

Angularjsng-selectng-options用法【select联动数据】

1、使用前景 最近在使用angualr项目中遇到select联动数据,尝试了很多次都失败,终于在查找了很多资料以后解决了问题。 2、介绍ng-select ng-select用来将数据同HTML的标签进行绑定。这个指令可以ng-model以及ng-options指令一起使用,构建精细且表现良好的动态表单。 ng-options的值可以是一个内涵表达式(compreh

LLDD2014425程序猿 3458

ng-select 项目常见问题解决方案

ng-select 是一个基于 Angular 的轻量级 UI 选择组件,支持单选、多选自动完成功能。该项目的主要编程语言是 TypeScript,它充分利用了 Angular 框架的特性,提供了丰富的功能灵活的配置选项。 ## 新手使用注意事项及解决方案 ### 1. 安装依赖问题 **问题描述**:新手在安装 ng-select 时,可能会遇到依赖安装失败或版本不兼容的问题。 **

gitblog_00750的博客 1044

2021-02-22 ng-select ngModel 绑定Object 在数组中的应用

import { Component } from '@angular/core'; @Component({ selector: 'nz-demo-select-label-in-value', template: ` <p>The selected option's age is {{ selectedValue?.age }}</p> <br /> <nz-select [(ngModel)]="selectedValu...

weixin_42481234的博客 854

ng-selectAngular 选择组件指南

ng-selectAngular 选择组件指南 项目介绍 ng-select是一款专为Angular平台设计的高性能选择组件。受React SelectVirtual Scroll启发,它提供了一系列高级功能,包括自动完成、多选、虚拟滚动以及自定义主题等。适合构建交互友好且可扩展的Web应用程序。这个库持续活跃开发中,因此在1.0.0版本之后可能会有API的改变。项目采用MIT许可进行分发,并广...

gitblog_00081的博客 642

计算机图形学第三版中文版

本书对计算机图形学进行综述;然后讲解二维图形的对象表示、算法应用,以及三维图形的相关技术、建模变换;接着介绍光照模型、颜色模型动画技术。

上一篇: Mybatis拦截器介绍
下一篇: 404错误设置
fn_2015
博客等级 码龄11年 12粉丝 29原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值