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 Validation插件防止重复提交表单的解决方法
Mar 05 Javascript
Visual Studio中的jQuery智能提示设置方法
Mar 27 Javascript
js二维数组定义和初始化的三种方法总结
Mar 03 Javascript
JS定义网页表单提交(submit)的方法
Mar 20 Javascript
Bootstrap每天必学之进度条
Nov 30 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
Dec 17 Javascript
jquery实现可旋转可拖拽的文字效果代码
Jan 27 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
Nov 03 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
May 23 jQuery
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
Jul 26 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
Sep 06 Javascript
JavaScript流程控制(循环)
Dec 06 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 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
Laravel实现用户注册和登录
2015/01/23 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
jQuery(非HTML5)可编辑表格实现代码
2012/12/11 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python实现simhash算法实例
2014/04/25 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
python时间time模块处理大全
2020/10/25 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
竞聘书格式及范文
2014/03/31 职场文书
南京南京观后感
2015/06/02 职场文书
教师见习总结范文
2015/06/23 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
PHP实现创建以太坊钱包转账等功能
2021/04/21 PHP
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
MySQL开启事务的方式
2021/06/26 MySQL