AngularJs ngIf、ngSwitch、ngHide/ngShow

在组合这些ng指令写到一篇文章里的时候,基本是有规则的,本兽会将功能相似相近的一类整合到一篇文章,方便理解和记忆。

这篇的三个指令也都是对DOM元素的操作,页面上显示/隐藏的判断,添加/移除的判断。

ngIf

ngIf指令会根据指定的表达式返回的boolean类型值对该元素做添加到/移除出Dom树的操作。

格式:ng-if=“value”

value:表达式  返回结果为boolean类型。

使用代码:

  <input type="button" value="show/hide" ng-click="show = !show;" /><div ng-if="show">Hello World</div>

这里做了个对Hello World 所在的div的显示/隐藏效果。但是如果你打开浏览器开发工具去审查元素,会发现这个div是被移除和添加的,只留下一个注释“<!-- ngIf: show -->”在div所在的地方。这个需要和下面的ngShow/ngHide做个区分。也就是说这个指令对DOM的操作是移除出/添加进DOM树了。

ngSwitch

ngSwitch指令可以根据表达式的结果在模板上按条件切换DOM结构。元素内使用ngSwitch而没使用ngSwitchWhen或者ngSwitchDefault指令的将会被保存在模板中。

格式:ng-switch  on=“expression” ng-switch-default  ng-switch-when=“value”

expression: 表达式,返回判断的条件是否成立的boolean值。

value:设置的条件

使用代码:

  <div ng-app="Demo" ng-controller="testCtrl as ctrl"><select ng-model="ctrl.tpl" ng-options="i for i in ctrl.select"><option value="0">请选择模板</option></select><div ng-switch on="ctrl.tpl"><p ng-switch-default>tpl-one</p><p ng-switch-when="tpl-two">tpl-two</p><p ng-switch-when="tpl-three">tpl-three</p></div></div>
  (function () {angular.module("Demo", []).controller("testCtrl", testCtrl);function testCtrl() {this.select = ["tpl-one", "tpl-two","tpl-three" ];this.tpl = this.select[0];};}());

ngSwitch根据表达式的成立与否添加对应的内容到写好的HTML位置,而这个位置当表达式为false时也是个注释就像:“<!-- ngSwitchWhen: tpl-two -->”。这是第二个模板绑定的位置,当表达式满足第二个模板的条件,那么这里就会被第二个模板的HTML代替并显示到页面。

ngHide/ngShow

NgHide/ngShow指令显示或隐藏指定的THML元素。元素的显示隐藏是根据元素上ng-hide的css样式添加删除实现的。

格式:ng-hide=”value”   ng-show=”value”

value:表达式 结果为boolean类型。

使用代码:

   <input type="button" value="show/hide" ng-click="show = !show;" /><div ng-show="show">Hello</div><div ng-hide="show">World</div>

ngShow和ngHide相反。这里把ng-hide的css样式写在下面吧:

   .ng-hide {/&#42; this is just another form of hiding an element &#42;/display: block!important;position: absolute;top: -9999px;left: -9999px;}

转载于:https://www.cnblogs.com/ys-ys/p/4965139.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL与MongoDB的区别

什么是MongoDB ?MongoDB 是由C语言编写的&#xff0c;是一个基于分布式文件存储的开源数据库系统。在高负载的情况下&#xff0c;添加更多的节点&#xff0c;可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档&…

webService上传图片

1 webService 2 3 /// <summary>4 /// 上传图片webServer 的摘要说明5 /// </summary>6 [WebService(Namespace "http://tempuri.org/")]7 [WebServiceBinding(ConformsTo WsiProfiles.BasicProfile1_1)]8 [ToolboxItem(fal…

在陌生Linux环境查看Tomcat服务的方法

1.查看Tomcat进程 执行命令$ps -ef|grep tomcat 你就能找出tomcat占据的进程号&#xff0c;当然这要求tomcat启动了。 # ps -ef | grep tomcat 2.查看Tomcat占据的端口 执行命令$netstat -nat能列出tomcat占据的端口&#xff0c;8080及其它类似的端口是需要注意的。这命令也需要…

查看WEB服务器的连接数

查看WEB服务器的连接数 https://technet.microsoft.com/en-us/sysinternals/bb897437 tcpView转载于:https://www.cnblogs.com/daishuguang/p/4973342.html

JVM系列三:JVM参数设置、分析

转载自&#xff1a; http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html 不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数&#xff0c;可以极大的减少由于GC工作&#xff0c;而导致的程序运行中断方面的问题…

堆溢出,栈溢出

堆溢出:不断的new 一个对象&#xff0c;一直创建新的对象&#xff0c; 栈溢出&#xff1a;死循环或者是递归太深&#xff0c;递归的原因&#xff0c;可能太大&#xff0c;也可能没有终止。 在一次函数调用中&#xff0c;栈中将被依次压入&#xff1a;参数&#xff0c;返回地址&…

Information_Schema系统表

information_schema数据库是MySQL自带的&#xff0c;它提供了访问数据库元数据的方式。 元数据是关于数据的数据&#xff0c;如数据库名或表名&#xff0c;列的数据类型&#xff0c;或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。 在…

天赋是牛人的基因?

最近听了吴瀚清&#xff08;俗称道哥&#xff09;分享安全&#xff0c;他是西安交大少年班毕业&#xff0c;专注于安全技术领域&#xff0c;23 岁加入阿里巴巴成为集团最年轻的高级技术专家&#xff0c;目前在阿里任 P10 职级。对于这类少年天才&#xff0c;一般会冠与神童的美…

最长回文Manacher

预处理: 判断一个串是不是回文串&#xff0c;往往要分开编写&#xff0c;造成代码的拖沓 int LongestPalindrome(const char * s, int n){ int i, j, max; if (s 0 || n < 1) return 0; max 0; for (i 0; i < n; i){//i is the middle point of palindrome for (j 0;…

链表面试笔试题目总结

链表是最基本的数据结构&#xff0c;凡是学计算机的必须的掌握的&#xff0c;在面试的时候经常被问到&#xff0c;关于链表的实现&#xff0c;百度一下就知道了。在此可以讨论一下与链表相关的练习题。 1、在单链表上插入一个元素&#xff0c;要求时间复杂度为O(1) 解答&#x…

linux下常用FTP命令

linux下常用FTP命令 1. 连接ftp服务器 1. 连接ftp服务器格式&#xff1a;ftp [hostname| ip-address]a)在linux命令行下输入&#xff1a; ftp 192.168.1.1b)服务器询问你用户名和密码&#xff0c;分别输入用户名和相应密码&#xff0c;待认证通过即可。 2. 下载文件 下载文件通…

线程、多线程与线程池

线程&#xff1a;进程中负责程序执行的执行单元。一个进程中至少有一个线程。 多线程&#xff1a;解决多任务同时执行的需求&#xff0c;合理使用CPU资源。多线程的运行是根据CPU切换完成&#xff0c;如何切换由CPU决定&#xff0c;因此多线程运行具有不确定性。 线程池&…