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 相关文章推荐
jQuery对象和DOM对象相互转化
Apr 24 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
Jan 01 Javascript
jQuery替换字符串(实例代码)
Nov 13 Javascript
IE浏览器下PNG相关功能
Jul 05 Javascript
js基于setTimeout与setInterval实现多线程
Jun 17 Javascript
微信小程序中实现一对多发消息详解及实例代码
Feb 14 Javascript
微信小程序之绑定点击事件实例详解
Jul 07 Javascript
js实现图片上传预览原理分析
Jul 13 Javascript
jQuery实现标签子元素的添加和赋值方法
Feb 24 jQuery
vue2.0 如何在hash模式下实现微信分享
Jan 22 Javascript
微信小程序实现跳转的几种方式总结(推荐)
Apr 24 Javascript
JavaScript实现公告栏上下滚动效果
Mar 13 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
Linux中为php配置伪静态
2014/12/17 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
Javascript 类与静态类的实现
2010/04/01 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
jQuery 实时保存页面动态添加的数据的示例
2017/08/14 jQuery
vue的基本用法与常见指令
2017/08/15 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
Python计算已经过去多少个周末的方法
2015/07/25 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
python使用fork实现守护进程的方法
2017/11/16 Python
Python之修改图片像素值的方法
2019/07/03 Python
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
信息专业个人的自我评价
2013/12/27 职场文书
安全教育感言
2014/03/04 职场文书
无私奉献演讲稿
2014/09/04 职场文书
小学生学习保证书
2015/02/26 职场文书
退税申请报告怎么写
2015/05/18 职场文书
安全第一课观后感
2015/06/18 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
Python实现为PDF去除水印的示例代码
2022/04/03 Python
排查MySQL生产环境索引没有效果
2022/04/11 MySQL