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


Posted in Javascript onJune 21, 2017

前言

ng-if指令可以根据表达式的值true/false在DOM中真正生成或真正移除一个元素。如果赋值给ng-if的表达式的值是false,那对应的元素将会从DOM中移除,否则对应元素的一个克隆将被重新插入DOM中。

ng-if同ng-show和ng-hide指令最本质的区别是,它不是通过CSS显示或隐藏DOM节点,而是真正生成或移除节点。

当一个元素被ng-if从DOM中移除,同它关联的作用域也会被销毁。而且当它重新加入DOM中时,会通过原型继承从它的父作用域生成一个新的作用域。

这样会导致,在 ng-if 中用基本变量绑定 ng-model ,并在外层 div 中把此 model 绑定给另一个显示区域,内层改变时,外层不会同步改变,因为此时已经是两个变量了。

示例代码:

<p>{{name}}</p>

<div ng-if="true">

<input type="text" ng-model="name" />

</div>

ng-show 不存在此问题,因为它不自带一级作用域。

避免这类问题出现的办法是,始终将页面中的元素绑定到对象的属性(data.x)而不是直接绑定到基本变量(x)上。详见 AngularJS 中的作用域

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
一段实时更新的时间代码
Jul 07 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
Sep 12 Javascript
火狐下input焦点无法重复获取问题的解决方法
Jun 16 Javascript
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
使用正则表达式的格式化与高亮显示json字符串
Dec 03 Javascript
JavaScript中连接操作Oracle数据库实例
Apr 02 Javascript
jQuery基于json与cookie实现购物车的方法
Apr 15 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
Aug 17 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
Feb 12 jQuery
用图片替换checkbox原始样式并实现同样的功能
Nov 15 Javascript
JavaScript文本特效实例小结【3个示例】
Dec 22 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
Dec 21 Javascript
jquery.validate表单验证插件使用详解
Jun 21 #jQuery
JS实现简单拖拽效果
Jun 21 #Javascript
详解Vue路由开启keep-alive时的注意点
Jun 20 #Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 #jQuery
详解Node.js access_token的获取、存储及更新
Jun 20 #Javascript
详解angular 中的自定义指令之详解API
Jun 20 #Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
Jun 20 #Javascript
You might like
php中文件上传的安全问题
2006/10/09 PHP
用PHP实现将GB编码转换为UTF8
2006/11/25 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
php中上传文件的的解决方案
2018/09/25 PHP
JS 字符串连接[性能比较]
2009/05/10 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
js实现简易拖拽的示例
2020/10/26 Javascript
Python实现的彩票机选器实例
2015/06/17 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
python爬虫实例详解
2018/06/19 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
python实现广度优先搜索过程解析
2019/10/19 Python
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
护士自荐信怎么写
2013/10/18 职场文书
单位承诺书格式
2014/05/21 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
手机销售员岗位职责
2015/04/11 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python
Redis集群的关闭与重启操作
2021/07/07 Redis
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫
在Python 中将类对象序列化为JSON
2022/04/06 Python