大家好,我是IT修真院郑州分院第七期的学员冯亚超,一枚正直纯洁善良的WEB程序员 今天给大家分享一下,题目angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?

一、背景介绍

指令是一个Dom元素上的标签(和元素上的属性, CSS 类样式一样,属于这个Dom元素), 它告诉AngualrJS的HTML 编译器,去附加一个行为到这个Dom元素上去, 这个行为可以改变这个Dom元素,或者这个Dom元素的子元素。

AngularJS 通过被称为 指令 的新属性来扩展 HTML。AngularJS 通过内置的指令来为应用添加功能。 AngularJS 内置指令是扩展的 HTML 属性,带有前缀 ng-。

二、知识剖析

ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?

NG-IF
ng-if 指令用于在表达式为 false 时移除 HTML 元素。
如果 ng-if 语句执行的结果为 true,会添加HTML元素,并显示。
ng-if 指令不同于 ng-hide/ng-show, ng-hide/ng-show是隐藏元素,设置元素的 display 为 none。而 ng-if 是从 DOM 中移除元素。
ng-hide 指令在表达式为 true 时隐藏指定的 HTML 元素。

ng-show 指令在表达式为 true 时显示指定的 HTML 元素。

NG-CLASS
ng-class 指令用于给 HTML 元素动态绑定一个或多个 CSS 类。
ng-class 指令的值可以是字符串,对象,或一个数组。
如果是字符串,多个类名使用空格分隔。
如果是对象,需要使用 key-value 对,key 为你想要添加的类名,value 是一个布尔值。只有在 value 为 true 时类才会被添加。
如果是数组,可以由字符串或对象组合组成,数组的元素可以是字符串或对象。

NG-OPTION
ng-options 指令用于使用options填充select元素的选项。

ng-options属性可以在表达式中使用数组或对象来自动生成一个select中的option列表。 ng-options与ng-repeat很相似,很多时候可以用ng-repeat来代替ng-options。 但是ng-options提供了一些好处,例如减少内存提高速度,以及提供选择框的选项来让用户选择。

NG-VALUE
ng-value 指令用于设置 input 或 select 元素的 value 属性。和value相比,它的值可以是表达式,所以相比之下可以实现更多需求。

比如当需要使用ng-repeat来动态生成input[]的时候,ngValue是很有用处的。

NG-CLICK
ng-click 指令告诉了 AngularJS HTML 元素被点击后需要执行的操作。
如果是使用ng-click来实现函数的执行的话,还可以进行传参。

一个ng-click可以触发多个操作

三、常见问题

ng-option表达式的写法

四、解决方案

NG-OPTION表达式的写法
1、数组作为数据源
用数组中的值做标签。(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)

2、对象作为数据源
用对象的键-值(key-value)做标签。(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)

ng-options的值可以是一个内涵表达式(comprehension expression), 其实这只是一种有趣的说法,简单来说就是它可以接收一个数组或者对象, 并对它们进行循环,将内部的内容提供给select标签内部的选项。ng-options属性可用于使用通过评估理解表达式获得的数组或对象来动态生成option 元素的select元素。

五、编码实战

腾讯视频

六、拓展思考

七、参考文献

ng-class用法

angular之ng-value指令

ng-select和ng-options

八、更多讨论

用angularJS的ng-model绑定到select上,会自动增加一个value为空的option,这是为什么?

原因:ng-model没有初始化导致的, 如果ng-model所绑定的变量的值在ng-options绑定的value里面有, 下拉选框中就不会有空白的一项,选中别的数据项以后消失; 如果ng-model所绑定的变量的值不在ng-options绑定的value里面, 下拉选框中就不会有空白一项,并且只有当ng-options绑定的value里有对应 的text为空行时,这个空行才会一直存在于下拉选项里。

解决办法
方法一:将select中的一个option设置为空,就可以防止因添加ng-model自动添加空option的问题
方法二:自己预先添加一个value为空的option,再用ng-if="false"把它去掉

PPT

angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?相关推荐

  1. 【修真院web小课堂】angular js常用指令 ng-blur、ng-change、ng-focus、ng-disabled是如何运用到表单验证中的?

    大家好,我是IT修真院武汉分院web第16期的学员孟晨,一枚正直纯洁善良的web程序员 今天给大家分享一下,修真院官网js(职业)任务八,深度思考中的知识点--angular js常用指令 ng-bl ...

  2. Angular JS(二) 指令部分

    还是打算分开来写,因为这部分正好打算写一下Angular JS里面的常用指令,篇幅会比较多,就不放在一起了. 接上部分继续说一下Angular JS的骚操作23333 (四)常用指令 使用这些指令可以 ...

  3. angular.js自定义指令

    angular.js最为强大的地方在于可以通过自定义指令来扩展html元素,这种思路与JSP的taglib类似,但在实现细节上更为自由,并且自定义指令也可以提供表单元素交互.数据绑定.事件处理功能. ...

  4. vue.jsv-html,Vue.js常用指令汇总(v-if、v-for等)

    JS: var vm = new Vue({ el: '#example03',data: { people: [{ name: 'Jack',age: 30,sex: 'Male' },{ name ...

  5. Angular.js学习-入门

    官方文档 https://angular.io/guide/quickstart 一.Angular.js是什么? Angular.js是一款为了克服HTML在构建应用上的不足而设计的优秀的前端JS框 ...

  6. 走进AngularJs(二) ng模板中常用指令的使用方式

    通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的.ng的模板真是让我爱不释手.学习ng道路还很漫长,从模板 ...

  7. angular 常用指令的使用

    <!DOCTYPE html> <html> <head><title>angular js进阶</title><meta chars ...

  8. vue.js语法和常用指令

    如果已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手动操作DOM的思维,因为Vue.js是数据驱动的,无需手动操作DOM.它通过一些特殊的HTML语法,将DOM和数据绑定起来.一旦你创 ...

  9. Vue.js基础特性、生命周期及常用指令

    目录 一.Vue构造选项 el根标签 data数据对象 methods定义方法 二.生命周期 三.常用指令 一.Vue构造选项 选项 说明 el 唯一根标签,决定Vue实例会管理哪一个DOM节点 da ...

最新文章

  1. jdbc 自增id 原理_给“小白”漫画+图示讲解MyBatis原理,就问香不香!
  2. windows server 2012多用户用一个账号同时登陆
  3. 为维护视图创建事物码
  4. 为单个Web应用程序配置多个上下文根– JBoss
  5. opengl源码 实现无缝切换图片过场_OpenGL学习笔记(六)变换
  6. linux 安装jdk tomcat mysql
  7. MediaElement 播放本地视频文件
  8. 记录一次配置unix网络编程环境的过程和遇到的问题
  9. C#6.0VISUALSTUDIO 2015 C#入门经典 第7版pdf
  10. Atitit.获取swing ui 按钮控件的id 与名字 与JPDA 调试体系
  11. protocol buffer与json对比
  12. linux安装远程桌面管理工具xrdp
  13. vue+element实现手机号验证码注册
  14. 爬取实习僧工作岗位信息
  15. php将ppt转jpg图片的具体步骤代码
  16. 走,上高架,看看Momenta“飞轮式L4”的“微操”技巧
  17. 商业智慧:创造奇迹的信件
  18. 【SQL】获取今天昨天本周上周本月上月本年去年的起止日期
  19. 行空板教程:语音识别助手
  20. 如何更改电脑的IP地址

热门文章

  1. ProtoBuf 常用序列化/反序列化API
  2. windows 和linux 同步api对比
  3. Error: Could not find or load main class org.elasticsearch.tools.JavaVersionChecker
  4. python twised系列教程四–twisted Poetry client
  5. Vue-easyui中如何给ComboGrid添加过滤器
  6. absolute元素水平居中
  7. JFinal Db + Record模式 - ORM 框架
  8. NSStringUIImage~NSData的相互转换以及中文转码
  9. 为Apple Push开发的PHP PEAR 包:Services_Apple_PushNotification
  10. 细数数据中台的3个业务价值和5个技术价值