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 相关文章推荐
JavaScript 设计模式 安全沙箱模式
Sep 24 Javascript
有关JavaScript的10个怪癖和秘密分享
Aug 28 Javascript
Javascript insertAfter() 实现函数代码
Oct 12 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
Sep 14 Javascript
客户端js性能优化小技巧整理
Nov 05 Javascript
Jquery实现自定义弹窗示例
Mar 12 Javascript
js时间日期格式化封装函数
Dec 02 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
Nov 25 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
Oct 28 Javascript
@angular前端项目代码优化之构建Api Tree的方法
Dec 24 Javascript
Three.js实现3D机房效果
Dec 30 Javascript
js消除图片小游戏代码
Dec 11 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 Cookie的使用教程详解
2013/06/03 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
Vue解析带html标签的字符串为dom的实例
2019/11/13 Javascript
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
深入浅析python with语句简介
2018/04/11 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
python2与python3共存问题的解决方法
2018/09/18 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
巴西男士胡须和头发护理产品商店:Beard
2017/11/13 全球购物
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
上班早退检讨书
2014/01/09 职场文书
学校班班通实施方案
2014/06/11 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
2015年入党决心书
2015/02/05 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
教师年终个人总结
2015/02/11 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
使用Django框架创建项目
2022/06/10 Python