解决ng-repeat产生的ng-model中取不到值的问题


Posted in Javascript onOctober 02, 2018

最近遇到在ng-repeat产生的textarea中绑定ng-model后,在js中取不到ng-model值的问题。

html的代码结构如下

<div class="ques-item hide1 show9a" id="q10">
 <div class="ques-item-question">
  10.{{questions[9].questionContent}}
 </div>
 <div class="ques-item-option">
  <div ng-repeat="option in questions[9].options">
   <input type="{{questions[9].questionType}}" name="problem10" value="{{option.optionCode}}" id="{{option.id}}">
   <label for="{{option.id}}">{{option.optionContent}}</label>
   <textarea ng-if="$index == 4" class="ques-option-text" name="" id="" cols="30" rows="1" ng-model="text10"></textarea>
  </div>
 </div>
</div>

用ng-repeat循环输出了该题目的选项,有的选项后面有输入框,于是用ng-if控制某个选项后面添加textarea输入框。在用ng-model双向绑定了text10后,当输入框中输入内容时,js中的$scope.text10并不能取得内容。

经过查询发现原因是,ng-repeat会产生子作用域,而js中的scope是父作用域的,Angularjs中的作用域向上查找,所以是不能取得ng-repeat中的绑定值的。

解决方案就是把子scope中的值通过$parent属性传递给父scope,同时把text10定义为数组,即前端绑定时使用$parent.text10[$index],这样就绑定了每一个textarea输入框的值,从而能在js中获取到。

修改后如下:

<div class="ques-item hide1 show9a" id="q10">
 <div class="ques-item-question">
  10.{{questions[9].questionContent}}
 </div>
 <div class="ques-item-option">
  <div ng-repeat="option in questions[9].options">
   <input type="{{questions[9].questionType}}" name="problem10" value="{{option.optionCode}}" id="{{option.id}}">
   <label for="{{option.id}}">{{option.optionContent}}</label>
   <textarea ng-if="$index == 4" class="ques-option-text" name="" id="" cols="30" rows="1" ng-model="$parent.text10[4]"></textarea>
  </div>
 </div>
</div>

以上这篇解决ng-repeat产生的ng-model中取不到值的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery学习笔记之jQuery的DOM操作
Dec 22 Javascript
Js与下拉列表处理问题解决
Feb 13 Javascript
Javascript字符串对象的常用方法简明版
Jun 26 Javascript
js继承call()和apply()方法总结
Dec 08 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
Mar 02 Javascript
JS打开摄像头并截图上传示例
Feb 18 Javascript
ES5 ES6中Array对象去除重复项的方法总结
Apr 27 Javascript
js实现倒计时关键代码
May 05 Javascript
详解Angular4 路由设置相关
Aug 26 Javascript
JavaScript中如何判断一个值的类型
Sep 15 Javascript
javascript自定义事件功能与用法实例分析
Nov 08 Javascript
微信小程序手机号码验证功能的实例代码
Aug 28 Javascript
ng-repeat指令在迭代对象时的去重方法
Oct 02 #Javascript
浅谈开发eslint规则
Oct 01 #Javascript
Angular ElementRef简介及其使用
Oct 01 #Javascript
element上传组件循环引用及简单时间倒计时的实现
Oct 01 #Javascript
使用iView Upload 组件实现手动上传图片的示例代码
Oct 01 #Javascript
vue项目持久化存储数据的实现代码
Oct 01 #Javascript
详解mpvue scroll-view自动回弹bug解决方案
Oct 01 #Javascript
You might like
php curl模拟post提交数据示例
2013/12/31 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
jquery tab插件制作实现代码
2010/06/22 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
面试常见的js算法题
2017/03/23 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
Angular开发实践之服务端渲染
2018/03/29 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
wxPython窗口的继承机制实例分析
2014/09/28 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
Python random模块用法解析及简单示例
2017/12/18 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
python归并排序算法过程实例讲解
2020/11/04 Python
护理毕业生自荐信范文
2013/12/22 职场文书
销售业务员岗位职责
2014/01/29 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
经典爱情感言
2015/08/03 职场文书
先进基层党组织主要事迹材料
2015/11/03 职场文书
2016年圣诞节寄语(一句话)
2015/12/07 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android