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实现十六进制颜色值(HEX)和RGB格式相互转换
Jun 20 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
Sep 12 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
Jan 23 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
Jun 10 Javascript
AngularJS Ajax详解及示例代码
Aug 17 Javascript
javascript实现的上下无缝滚动效果
Sep 19 Javascript
微信小程序 Button 组件详解及简单实例
Jan 10 Javascript
Angular模板表单校验方法详解
Aug 11 Javascript
JavaScript简单实现合并两个Json对象的方法示例
Oct 16 Javascript
关闭Vue计算属性自带的缓存功能方法
Mar 02 Javascript
微信小程序实现保存图片到相册功能
Nov 30 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
Jun 20 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设计模式中工厂模式详细介绍
2013/05/15 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python中通过预先编译正则表达式提高效率
2017/09/25 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
浅谈Python中的字符串
2020/06/10 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
阿里健康大药房:阿里自营网上药店
2017/08/01 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
机械工程师的岗位职责
2013/11/17 职场文书
商务日语毕业生自荐信
2013/11/23 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
学校师德师风整改方案
2014/10/28 职场文书
自主招生自荐信范文
2015/03/04 职场文书
四大名著读书笔记
2015/06/25 职场文书
python opencv通过按键采集图片源码
2021/05/20 Python
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
python创建字典及相关管理操作
2022/04/13 Python