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 相关文章推荐
修改file按钮的默认样式实现代码
Apr 23 Javascript
jquery插件开发之实现google+圈子选择功能
Mar 10 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 Javascript
jQuery 限制输入字符串长度
Jun 20 Javascript
jquery-file-upload 文件上传带进度条效果
Nov 21 jQuery
angularjs实现柱状图动态加载的示例
Dec 11 Javascript
详解vue-cli脚手架中webpack配置方法
Aug 22 Javascript
详解Webpack loader 之 file-loader
Nov 07 Javascript
jQuery分组选择器简单用法示例
Apr 04 jQuery
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 Javascript
Element中Slider滑块的具体使用
Jul 29 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
Oct 18 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 fsockopen写的HTTP下载的类
2007/02/22 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
JavaScript的变量作用域深入理解
2009/10/25 Javascript
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
快速排序 php与javascript的不同之处
2011/02/22 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
javascript中html字符串转化为jquery dom对象的方法
2015/08/27 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
利用BootStrap弹出二级对话框的简单实现方法
2016/09/21 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
python实现图片变亮或者变暗的方法
2015/06/01 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
Born鞋子官网:Born Shoes
2017/04/06 全球购物
工程监理应届生求职信
2013/11/09 职场文书
农村葬礼主持词
2014/03/31 职场文书
《画》教学反思
2014/04/14 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
继续教育个人总结
2015/03/03 职场文书
校车安全管理责任书
2015/05/11 职场文书
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android