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 Cookie的读取和写入函数
Dec 08 Javascript
JavaScript DOM 学习第五章 表单简介
Feb 19 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
Jul 31 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
Mar 14 Javascript
JavaScript事件处理器中的event参数使用介绍
May 24 Javascript
Google 地图API资料整理及详细介绍
Aug 06 Javascript
对于js垃圾回收机制的理解
Sep 14 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
Nov 07 Javascript
node.js express捕获全局异常的三种方法实例分析
Dec 27 Javascript
javascript操作向表格中动态加载数据
Aug 27 Javascript
js实现鼠标滑动到某个div禁止滚动
Sep 17 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
Nov 04 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/12/02 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
php中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
PDO::_construct讲解
2019/01/27 PHP
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
2018/03/20 jQuery
ES6 Symbol在对象中的作用实例分析
2020/06/06 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
python Django框架实现自定义表单提交
2016/03/25 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
建筑工程管理专业自荐信范文
2013/12/28 职场文书
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
宣传活动总结范文
2014/07/01 职场文书
委托函范文
2015/01/29 职场文书
资金申请报告范文
2015/05/14 职场文书
社区结对共建协议书
2016/03/23 职场文书
用Python实现屏幕截图详解
2022/01/22 Python
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL