在组合这些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">
<div 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>
</div>
  (function () {
angular.module("Demo", [])
.controller("testCtrl", testCtrl);
function testCtrl() {
var vm = this;
vm.select = ["tpl-one", "tpl-two","tpl-three" ];
vm.tpl = vm.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 {
/* this is just another form of hiding an element */
display: block!important;
position: absolute;
top: -9999px;
left: -9999px;
}

难得的周末,再次吐槽每周上六天班真的真的好累....  明天可以多睡会了,那么待会就再写一篇吧~哈哈    下篇写完就把ng-xxx类的写完了,剩下的都好多,学习进程也好慢...  到现在写了整个自定义指令的和缓存服务的和scope的一些方法函数

Angular - - ngIf、ngSwitch、ngHide/ngShow的更多相关文章

  1. AngularJs ngIf、ngSwitch、ngHide/ngShow

    在组合这些ng指令写到一篇文章里的时候,基本是有规则的,本兽会将功能相似相近的一类整合到一篇文章,方便理解和记忆. 这篇的三个指令也都是对DOM元素的操作,页面上显示/隐藏的判断,添加/移除的判断. ...

  2. angularjs之ng-if、ng-show、ng-switch那些事

    一.蓝瘦~香菇   经常在项目中使用ng-if和ng-show来处理一些简单的状态,今天碰到一个复杂的状态判断,不经让我想起ng-switch.第一次接触他的时候,我没怎么注意他,因为我直接把他当作其 ...

  3. AngularJS的学习--ng-show/ng-hide/ng-if和ng-switch

    在Angular的原生指令中有这几个指令用来控制元素的展示与否,ng-show/ng-hide/ng-if和ng-switch. 在angular性能优化中,我们也常常会用到它. 我们看下他们的区别. ...

  4. [译] 2017 年比较 Angular、React、Vue 三剑客

    原文地址:Angular vs. React vs. Vue: A 2017 comparison 原文作者:Jens Neuhaus 译文出自:掘金翻译计划 本文永久链接:github.com/xi ...

  5. MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录

    注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是 ...

  6. 前端开发环境搭建 Grunt Bower、Requirejs 、 Angular

    现在web开发的趋势是前后端分离.前端采用某些js框架,后端采用某些语言提供restful API,两者以json格式进行数据交互. 如果后端采用node.js,则前后端可以使用同一种语言,共享某些可 ...

  7. 【JavsScript】JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember

    摘要:选择JavaScript MVC框架很难.一方面要考虑的因素非常多,另一方面这种框架也非常多,而要从中选择一个合适的,还真得费一番心思.本文对JavaScript MVC框架Angular.Ba ...

  8. JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  9. Angular - - ngCloak、ngController、ngInit、ngModel

    ngCloak ngCloak指令是为了防止Angular应用在启动加载的时候html模板将会被短暂性的展示.这个指令可以用来避免由HTML模板显示造成不良的闪烁效果. 格式: ng-cloak   ...

随机推荐

  1. gen_create_syn.sql

    set echo off feedback off verify off pagesize 0 linesize 120 ---变量从 sqlplus 的 call代码 传递过来 . -- 1 表示连 ...

  2. js 鼠标事件

    <html><head lang="en"> <meta charset="UTF-8"> <title>< ...

  3. 2304: Lights Out(枚举)

    枚举第一行所有可能的的情况 #include<iostream> #include<cstdio> #include<cstring> #include<al ...

  4. 在IE6里面当元素浮动后再设置margin那么就会产生双倍边距

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. shell中break 与 continue

    在学习中我看到不单单有break和continue的存在,还有break -n  和  continue -n 的存在  那么它们有什么区别呢. 这时可以写出测设代码: for i in a b c ...

  6. Firebug Console 与命令行全集

    Console API 当打开 firebug (也包括 Chrome 等浏览器的自带调试工具),window 下面会注册一个叫做 console 的对象,它提供多种方法向控制台输出信息,供开发人员调 ...

  7. RHEL7 单独安装图形 X11

    RHEL7 默认是最小化安装(Minimal Install),没有图形界面, 我们应该选择Server with GUI.若已错过此步骤,我们采用以下方式补充安装GUI界面.

  8. PHP处理多表查询时的SQL语句拆分与重新组装

    在自己写框架时候会发现,多表查询组装SQL语句<?php $pre = "pre_"; $aid = "44"; $data = array(" ...

  9. Android开发:组播(多播)与广播

    近期由于需要编写能够使同一局域网中的Android客户端与PC端进行自动匹配通信功能的程序,学习并试验了JAVA组播与广播的内容,记录一些理解如下: 一.组播(多播) 背景知识:组播使用UDP对一定范 ...

  10. sersync 实时同步文件

    sersync 主要用于服务器同步,web镜像等功能.sersync是使用c++编写,在结合rsync同步的时候,节省了运行时耗和网络资源.因此更快.sersync配置起来很简单.另外本项目相比较其他 ...