`

ng-show和ng-if的区别和使用场景

阅读更多
一、ng-show(ng-hide)和ng-if都是控制标签的显示和隐藏,为什么angularjs会定义两个指令来供我们使用呢,不多多说肯定有各自的使用场景,接下来我们看哈实际原理:
ng-show实质性就是控制标签的显示和隐藏,内部是display: none;
ng-if则是移除标签和插入标签:;

二、实际比较
定义三个div

<div ng-show="true">我是显示</div>
  	<div ng-show="">我是隐藏</div>
  	<div ng-if="">我是移除</div>

看浏览器显示效果

我们看到ng-show的连个div的元素还是存在,只是样式的display被分别设置为block和none,而ng-if的标签已经被移除。
三、实际场景选择
3.1.场景一
ng-if重新创建元素时用的是它们编译后的状态。如果ng-if内部的代码加载之后被jQuery修改过(例如用.addClass),那么当ng-if的表达式值为false时,这个DOM元素会被移除,表达式再次成为true时这个元素及其内部的子元素会被重新插入DOM,此时这些元素的状态会是它们的原始状态,而不是它们上次被移除时的状态。也就是说无论用jQuery的.addClass添加了什么类都不会存在了。而ng-show和ng-hide则可以保留dom元素上次修改后的状态。
3.2.场景二
当我们使用ng-bind-html时候变量内容过多,此时我们需要控制显示或隐藏标签,此时你用ng-if会不断的操作dom,你会发现显示的速度非常慢。

总结:当不停操作标签且内容较少时候,并且不存在动态操作标签样式时候。运用ng-show和ng-if都可以;当不停操作标签且内容较少时候,并且存在动态操作标签样式时候。运用ng-show;当标签只使用一次就没得作用建议使用ng-if,减少加载。
  • 大小: 28.1 KB
分享到:
评论

相关推荐

    Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程

    总结来说,这三个指令各有特点,ng-if适合于需要彻底移除元素的情况,ng-show/ng-hide适用于频繁切换显示隐藏但不希望元素从DOM中移除的场景,而ng-switch则适合于构建选择性的UI,如选项卡或根据条件显示多个块。...

    Angular.js中ng-if、ng-show和ng-hide的区别介绍

    在Angular.js中,ng-if、ng-show和ng-hide都是用于控制页面元素的可见性,但它们在实现方式和效果上存在显著的差异。...正确选择和使用ng-if、ng-show和ng-hide可以帮助你编写出更加高效和可维护的代码。

    AngularJS基础 ng-show 指令简单示例

    此外,`ng-if`指令更进一步,它不仅控制元素的可见性,还会根据表达式的值决定是否在DOM中插入或移除元素,因此`ng-if`可能导致页面重新渲染,性能上相比`ng-show`和`ng-hide`略低。 总的来说,`ng-show`指令是...

    获取焦点ng-focus实例

    在实际项目中,`ng-focus`常常与其他AngularJS指令结合使用,例如`ng-show`或`ng-if`来控制元素的显示隐藏,或者`ng-class`来动态地添加或移除CSS类。通过这种方式,我们可以创建出响应用户行为的交互式界面。 在...

    Angular.JS中指令ng-if的注意事项小结

    在实际开发中,需要根据具体的使用场景来决定使用ng-if还是ng-show或ng-hide。如果元素的显示与隐藏只是临时的,并且不需要彻底从DOM中移除元素(比如通过CSS控制显示隐藏),那么ng-show和ng-hide可能是更好的选择...

    Angular中ng-repeat与ul li的多层嵌套重复问题

    但是,当我们需要使用ng-repeat进行多层嵌套时,需要改变思维方式,将列表和父级元素相关联,形成树状结构。 三、解决方案 解决方案的关键在于改变思维方式,将列表和父级元素相关联,形成树状结构。我们可以使用 ...

    ng-book-The.Complete.Book.on.AngularJS.pdf

    - **内置指令**:书中列举了一些常用的内置指令,如 `ng-if`、`ng-show` 和 `ng-repeat` 等,以及它们的应用场景。 #### 七、路由 - **多视图应用程序**:介绍如何使用 AngularJS 路由机制来构建单页面应用(SPA)...

    AngularJS 最常用的八种功能

    **区别**:`ng-if` 会在条件为假时移除DOM元素,而 `ng-show/ng-hide` 仅改变元素的CSS属性。 #### 五、校验语法之 ng-trim/ng-minlength/ng-maxlength/required/ng-pattern 标签 **功能概述**:这些指令用于实现...

    关于 angularJS的一些用法

    例如,输入字段可以使用ng-minlength和ng-maxlength来限制最小和最大长度,使用ng-required来标记为必填项。 4. ng-include:此指令用于动态加载HTML片段。它通过HTTP请求来获取外部文件,并将其内容加载到当前页面...

    Angular中ng-options下拉数据默认值的设定方法

    本篇文章聚焦于如何在使用`ng-options`时设定下拉列表的默认选中值。我们将通过一个具体的示例来详细解释这一过程。 首先,我们来看一下HTML部分: ```html &lt;div class="form-group"&gt; &lt;label class="col-sm-2 ...

    AngularJS基础 ng-hide 指令用法及示例代码

    如果需要更丰富的动画效果,可以考虑使用ng-show指令的补充指令,如ng-if或者ng-switch,或者结合CSS3动画。 对于ng-hide指令,理解其背后的原理和使用场景非常重要,这样开发者才能够充分地利用它来简化代码,提高...

    AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法

    在AngularJS中,`ng-repeat`指令用于循环遍历数组或对象,生成DOM元素,它在构建可重用和动态的UI组件时非常有用。在本例中,开发者遇到的问题是在`ng-repeat`循环中包含动态HTML,这些HTML中还嵌套了自定义指令。...

    AngularJS中实现动画效果的方法

    - ng-view、ng-include、ng-repeat、ng-if、ng-switch:这些指令也用于控制DOM元素的动态添加、删除、条件渲染等,而ngAnimate会监测这些变化并应用动画。 ng-hide指令本身不是动画指令,但与ngAnimate一起使用时,...

    vue面试题 vue面试题

    v-if 和 v-show 的区别: 共同点:v-if 和 v-show 都可以用来动态显示 DOM 元素。 区别: 编译过程:v-if 是真正的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。v-show 的...

    Angular用来控制元素的展示与否的原生指令介绍

    在Angular框架中,控制元素的展示与否是常见的需求,Angular为此提供了一系列的原生指令,包括ng-show、ng-hide、ng-if和ng-switch。这些指令允许开发者根据特定条件动态地控制DOM元素的可见性,从而实现更加灵活的...

    AngularJS实用开发技巧(推荐)

    2. **ng-show和ng-hide**:根据表达式的真伪决定元素的可见性。两者互为反义词,通常用于条件展示内容。例如,显示或隐藏菜单。 3. **ng-switch**:类似于switch语句,根据表达式的值显示不同的HTML块。适用于多个...

    XXX电商系统开发-前端框架AngularJS入门.docx

    2. **品牌管理的分页列表功能**:通过AngularJS的`ng-if`和`ng-show`等指令来实现分页逻辑,同时结合服务器端或客户端的分页技术,可以有效地处理大量数据的展示问题。 3. **品牌管理的增加功能**:使用表单验证、...

    angularjs 1.X crm 后台管理系统

    3. **指令**:在描述中提到的“大量封装指令”,这些是AngularJS中的自定义元素或属性,可以扩展HTML的功能,例如ng-repeat用于循环渲染数据,ng-if和ng-show/hide控制元素的显示状态。 4. **服务**:AngularJS的...

    2013年度最强AngularJS资源合集.pdf

    常见的指令有 ng-repeat、ng-if、ng-show 等。 5. AngularJS 服务:AngularJS 中的服务是指可以在应用程序中使用的功能单元,用于提供数据存储、网络请求、日志记录等功能。服务可以通过依赖注入来实现在不同的模块...

Global site tag (gtag.js) - Google Analytics