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 相关文章推荐
基于jQuery制作迷你背词汇工具
Jul 27 Javascript
javascript中直接引用Microsoft的COM生成Word
Jan 20 Javascript
全面解析Bootstrap弹窗的实现方法
Dec 01 Javascript
jQuery基于扩展实现的倒计时效果
May 14 Javascript
Javascript随机标签云代码实例
Jun 21 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
Sep 27 Javascript
Vue中computed与methods的区别详解
Mar 24 Javascript
vue.js中proxyTable 转发请求的实现方法
Sep 20 Javascript
jQuery实现的点击图片居中放大缩小功能示例
Jan 16 jQuery
vue路由教程之静态路由
Sep 03 Javascript
JSONP解决JS跨域问题的实现
May 25 Javascript
JavaScript canvas实现文字时钟
Jan 10 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
写出高质量的PHP程序
2012/02/04 PHP
php中session退出登陆问题
2014/02/27 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
JavaScript的各种常见函数定义方法
2014/09/16 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
Puppeteer使用示例详解
2019/06/20 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
植物选择:Botanic Choice
2017/02/15 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
IBatis持久层技术
2016/07/18 面试题
环保专业大学生职业规划设计
2014/01/10 职场文书
求职简历的自我评价
2014/01/31 职场文书
如何撰写岗位职责
2014/02/01 职场文书
企业精神口号
2014/06/11 职场文书
golang生成vcf通讯录格式文件详情
2022/03/25 Golang
分享python函数常见关键字
2022/04/26 Python