解决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 相关文章推荐
javascript Zifa FormValid 0.1表单验证 代码打包下载
Jun 08 Javascript
用JS实现一个页面多个css样式实现
May 29 Javascript
javascript中函数作为参数调用的方法
Feb 09 Javascript
jQuery下拉框的简单应用
Jun 24 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
May 11 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
Aug 30 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
Oct 09 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
Mar 21 Javascript
vue项目中将element-ui table表格写成组件的实现代码
Jun 12 Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 Javascript
uni-app如何页面传参数的几种方法总结
Apr 28 Javascript
JavaScript代码简化技巧实例解析
Sep 09 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
PHP insert语法详解
2008/06/07 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
haskell实现多线程服务器实例代码
2013/11/26 Python
详解Python验证码识别
2016/01/25 Python
python中函数默认值使用注意点详解
2016/06/01 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
Python实现的双色球生成功能示例
2017/12/18 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
用Python配平化学方程式的方法
2019/07/20 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
2014升学宴答谢词
2014/01/26 职场文书
品牌推广策划方案
2014/05/28 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis