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 相关文章推荐
JS对URL字符串进行编码/解码分析
Oct 25 Javascript
jQuery EasyUI API 中文文档 - Form表单
Oct 06 Javascript
jQuery读取和设定KindEditor值的方法
Nov 22 Javascript
一个支持任意尺寸的图片上下左右滑动效果
Aug 24 Javascript
jQuery中odd选择器的定义和用法
Dec 23 Javascript
JavaScript 模块化编程(笔记)
Apr 08 Javascript
jquery插件bootstrapValidator数据验证详解
Nov 09 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
Sep 18 Javascript
Nuxt.js 数据双向绑定的实现
Feb 17 Javascript
JavaScript实现京东放大镜效果
Dec 03 Javascript
如何利用JavaScript编写更好的条件语句详解
Aug 10 Javascript
在react项目中使用antd的form组件,动态设置input框的值
Oct 24 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
Zend公司全球首推PHP认证
2006/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
php中使用sftp教程
2015/03/30 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
关于event.cancelBubble和event.stopPropagation()的区别介绍
2011/12/11 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
jQuery解决$符号命名冲突
2016/06/18 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
Python编程之Re模块下的函数介绍
2017/10/28 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
python脚本定时发送邮件
2020/12/22 Python
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
优秀求职自荐信怎样写
2013/12/18 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
2014年党务公开方案
2014/05/08 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
学校少先队工作总结
2015/08/12 职场文书
解决Python字典查找报Keyerror的问题
2021/05/26 Python
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS