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代码
Aug 25 Javascript
JS对象与JSON格式数据相互转换
Feb 20 Javascript
window.addEventListener来解决让一个js事件执行多个函数
Dec 26 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
May 13 Javascript
Node.js实现的简易网页抓取功能示例
Dec 05 Javascript
数据结构中的各种排序方法小结(JS实现)
Jul 23 Javascript
javascript实现多张图片左右无缝滚动效果
Mar 22 Javascript
详解Node.js模板引擎Jade入门
Jan 19 Javascript
jQuery实现的两种简单弹窗效果示例
Apr 18 jQuery
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
Vue实现一个无限加载列表功能
Nov 13 Javascript
js中Array对象的常用遍历方法详解
Jan 17 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
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
Js基础学习资料
2010/11/23 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
jQuery实现自动切换播放的经典滑动门效果
2015/09/12 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
原生 JS Ajax,GET和POST 请求实例代码
2016/06/08 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
在Django的URLconf中使用命名组的方法
2015/07/18 Python
Python正则表达式经典入门教程
2017/05/22 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
酒店拾金不昧表扬信
2014/01/18 职场文书
2016高考冲刺决心书
2015/09/23 职场文书