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 相关文章推荐
List the Stored Procedures in a SQL Server database
Jun 20 Javascript
alert中断settimeout计时功能
Jul 26 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
Dec 29 Javascript
详解Vuejs2.0之异步跨域请求
Apr 20 Javascript
用node和express连接mysql实现登录注册的实现代码
Jul 05 Javascript
微信小程序 页面跳转事件绑定的实例详解
Sep 20 Javascript
Vue微信项目按需授权登录策略实践思路详解
May 07 Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 Javascript
微信小程序当前时间时段选择器插件使用方法详解
Dec 28 Javascript
js实现随机8位验证码
Jul 24 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 jQuery
JavaScript控制台的更多功能
Apr 28 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下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
php适配器模式介绍
2012/08/14 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
Angular 容器部署的方法
2018/04/17 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
python妹子图简单爬虫实例
2015/07/07 Python
Pycharm学习教程(1) 定制外观
2017/05/02 Python
python web基础之加载静态文件实例
2018/03/20 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
h5封装下拉刷新
2020/08/25 HTML / CSS
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
费用会计岗位职责
2014/01/01 职场文书
经典大学生求职信范文
2014/01/06 职场文书
大学校运会广播稿
2014/02/03 职场文书
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
解除同居协议书
2015/01/29 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
python中的getter与setter你了解吗
2022/03/24 Python
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js
css3 文字断裂效果
2022/04/22 HTML / CSS