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产品间断向下滚动效果核心代码
May 08 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
Jun 07 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
Jun 16 Javascript
禁用页面部分JavaScript不是全部而是部分
Sep 03 Javascript
jQuery中bind()方法用法实例
Jan 19 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
jquery Deferred 快速解决异步回调的问题
Apr 05 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
Mar 29 Javascript
纯JS实现可用于页码更换的飞页特效示例
May 21 Javascript
vue如何根据网站路由判断页面主题色详解
Nov 02 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
Dec 08 Javascript
vue实现简单计算商品价格
Sep 14 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
又一个小巧的图片预加载类
2007/05/05 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
JS二维数组的定义说明
2014/03/03 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
简单通过settimeout看javascript的运行机制
2019/05/10 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
python+pandas分析nginx日志的实例
2018/04/28 Python
Python拼接字符串的7种方法总结
2018/11/01 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
巴黎一票通:The Paris Pass
2018/02/10 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
护理毕业生自荐信范文
2013/12/22 职场文书
文艺演出主持词
2015/07/01 职场文书
Python OpenGL基本配置方式
2022/05/20 Python