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 相关文章推荐
JavaScript的面向对象(一)
Nov 09 Javascript
Jquery replace 字符替换实现代码
Dec 02 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
Jun 28 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
Dec 04 Javascript
Javascript中拼接大量字符串的方法
Feb 05 Javascript
javascript中获取元素标签中间的内容的实现方法
Oct 08 Javascript
AngularJS中的promise用法分析
May 19 Javascript
JS数组去重的6种方法完整实例
Dec 08 Javascript
Vue form表单动态添加组件实战案例
Sep 02 Javascript
将RGB值转换为灰度值的简单算法
Oct 09 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 Javascript
关于vue-router-link选择样式设置
Apr 30 Vue.js
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,ajax实现分页
2008/03/27 PHP
PHP 透明水印生成代码
2012/08/27 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
Javascript学习笔记二 之 变量
2010/12/15 Javascript
jQuery中绑定事件的命名空间详解
2011/04/05 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
python中web框架的自定义创建
2019/09/08 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
QML实现钟表效果
2020/06/02 Python
python小白学习包管理器pip安装
2020/06/09 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
Django自带的用户验证系统实现
2020/12/18 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
旅游管理专业生自荐信范文
2014/01/02 职场文书
社区志愿者培训方案
2014/06/10 职场文书
空气的环保标语
2014/06/12 职场文书
小学安全教育主题班会
2015/08/12 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
MySQL创建管理KEY分区
2022/04/13 MySQL