AngularJS解决ng-if中的ng-model值无效的问题


Posted in Javascript onJune 21, 2017

与其他指令一样,ng-if指令也会创建一个子级作用域,因此,如果在ng-if指令中添加了元素,并向元素属性增加 ng-model指令,那么ng-model指令对应的作用域属性子级作用域,而并非控制器注入的$scope作用域对象,这点在进行双向数据绑定时,需要引起注意。

<!DOCTYPE html>  
<html ng-app="myApp">  
<head>  
<meta charset="UTF-8">  
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>  
<style> 
 .frame{ 
  padding: 5px 8px; 
  margin: 0px; 
  font-size: 12px; 
  width: 320px; 
  background-color: #eee; 
 } 
 .frame div{ 
  margin: 5px 0px; 
 } 
</style>  
</head>  
<body>  
 <div ng-controller="myCtrl" class="frame"> 
  <div> 
   a 的值: {{a}} <br> 
   b 的值: {{b}} 
  </div> 
  <div> 
   普通方式: <input type="checkbox" ng-model="a"> 
  </div> 
  <div ng-if="!a"> 
   ngIf方式:<input type="checkbox" ng-model="$parent.b"> 
  </div> 
 </div> 
 
 <script> 
  angular.module('myApp', []) 
   .controller('myCtrl', function($scope){ 
    $scope.a = false; 
    $scope.b = false; 
   }) 
 </script> 
</body>  
</html>

在ng-if方式中,每个包含的元素都拥有自己的作用域,因此,复选框元素也拥有自己的$scope作用域。相对于控制器作用域来说,这个作用域属于一个子级作用域,所以,如果它想绑定控制器中的变量值,必须添加$parent标识,只有这样才能访问到控制器中的变量。

因此,解决ng-if中ng-model值无效的问题,主要方法就是在绑定值时添加$parent标识,或者用ng-show指令代替ng-if指令,这两种方法都可以达到同样的页面效果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
DHTML Slide Show script图片轮换
Mar 03 Javascript
Jquery Validate 正则表达式实用验证代码大全
Aug 23 Javascript
深入理解jQuery中live与bind方法的区别
Dec 18 Javascript
JavaScript中的原始值和复杂值
Jan 07 Javascript
Javascript动画效果(1)
Oct 11 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
Nov 29 Javascript
微信小程序实现实时圆形进度条的方法示例
Feb 24 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
Mar 14 Javascript
详解Vue如何支持JSX语法
Nov 10 Javascript
原生JS实现手动轮播图效果实例代码
Nov 22 Javascript
Echarts地图添加引导线效果(labelLine)
Sep 30 Javascript
js前端对于大量数据的展示方式及处理方法
Dec 02 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
Jun 21 #Javascript
微信小程序图片宽100%显示并且不变形
Jun 21 #Javascript
微信小程序中页面FOR循环和嵌套循环
Jun 21 #Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 #Javascript
javascript+html5+css3自定义提示窗口
Jun 21 #Javascript
详解webpack分离css单独打包
Jun 21 #Javascript
AngularJS动态绑定ng-options的ng-model实例代码
Jun 21 #Javascript
You might like
截获网站title标签之家内容的例子
2006/10/09 PHP
第七节--类的静态成员
2006/11/16 PHP
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
微信支付开发交易通知实例
2016/07/12 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
python实现汽车管理系统
2018/11/30 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
2014学雷锋活动总结
2014/03/09 职场文书
教师遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript