解决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 相关文章推荐
js 对象是否存在判断
Jul 15 Javascript
js克隆对象、数组的常用方法介绍
Sep 26 Javascript
Jquery中children与find之间的区别详细解析
Nov 29 Javascript
JavaScript多并发问题如何处理
Oct 28 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
Jul 04 Javascript
DropDownList实现可输入可选择(两种版本可选)
Dec 07 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
Apr 07 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
May 31 Javascript
jQuery扩展_动力节点Java学院整理
Jul 05 jQuery
Vue侧滑菜单组件——DrawerLayout
Dec 18 Javascript
Vue 动态组件components和v-once指令的实现
Aug 30 Javascript
解决vue-router 切换tab标签关闭时缓存问题
Jul 22 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递归创建和删除文件夹的代码小结
2012/04/13 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
Ext面向对象开发实践(续)
2008/11/18 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
深入理解python try异常处理机制
2016/06/01 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
Python下载网络小说实例代码
2018/02/03 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
python 3.3 下载固定链接文件并保存的方法
2018/12/18 Python
强悍的Python读取大文件的解决方案
2019/02/16 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
高中毕业生自我鉴定例文
2013/12/29 职场文书
中学生演讲稿
2014/04/26 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
学校德育工作总结2015
2015/05/11 职场文书
酒会开场白大全
2015/06/01 职场文书
考试后的感想
2015/08/07 职场文书
优质护理服务心得体会
2016/01/22 职场文书
《法国号》教学反思
2016/02/22 职场文书