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 相关文章推荐
js跨域和ajax 跨域问题的实现思路
Sep 05 Javascript
JavaScript Timer实现代码
Feb 17 Javascript
JavaScript中prototype为对象添加属性的误区介绍
Oct 15 Javascript
Javascript中对象继承的实现小例
May 12 Javascript
AngularJS基础学习笔记之控制器
May 10 Javascript
jquery验证手机号是否正确实例讲解
Nov 17 Javascript
jQuery 实现图片的依次加载图片功能
Jul 06 jQuery
浅谈Vue.use的使用
Aug 29 Javascript
js 实现ajax发送步骤过程详解
Jul 25 Javascript
JS原形与原型链深入详解
May 09 Javascript
vue 中的动态传参和query传参操作
Nov 09 Javascript
vue 中this.$set 动态绑定数据的案例讲解
Jan 29 Vue.js
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实现的文件浏览器功能简单示例
2019/09/12 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
BootStrap中
2016/12/10 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
Vue程序调试的方法
2019/06/17 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
JS三级联动代码格式实例详解
2019/12/30 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
vue3.0 项目搭建和使用流程
2021/03/04 Vue.js
通过源码分析Python中的切片赋值
2017/05/08 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
创业融资计划书
2014/04/25 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
单位活动策划方案
2014/08/17 职场文书
成本会计实训报告
2014/11/05 职场文书
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记