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 13 Javascript
jQuery 动画基础教程
Dec 25 Javascript
火狐下input焦点无法重复获取问题的解决方法
Jun 16 Javascript
javascript常用代码段搜集
Dec 04 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
Apr 15 Javascript
jquery validate demo 基础
Oct 29 Javascript
很棒的Bootstrap选项卡切换效果
Jul 01 Javascript
react-router实现跳转传值的方法示例
May 27 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
Jun 12 Javascript
jQuery实现全选、反选和不选功能
Aug 16 jQuery
详解关于vue2.0工程发布上线操作步骤
Sep 27 Javascript
js设置鼠标悬停改变背景色实现详解
Jun 26 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防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
2018/11/22 PHP
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
Python的互斥锁与信号量详解
2019/09/12 Python
Python箱型图处理离群点的例子
2019/12/09 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
Python的logging模块基本用法
2020/12/24 Python
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
开业庆典主持词
2014/03/21 职场文书
担保书格式及范文
2014/04/01 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
毕业设计致谢词
2015/05/14 职场文书
环境卫生整治简报
2015/07/20 职场文书
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript