解决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 $.fn $.fx是什么意思有什么用
Nov 04 Javascript
jQuery表格插件ParamQuery简单使用方法示例
Dec 05 Javascript
javascript中的遍历for in 以及with的用法
Dec 22 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
Aug 19 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
Nov 02 Javascript
jQuery实现查找最近父节点的方法
Jun 23 Javascript
jquery.param()实现数组或对象的序列化方法
Oct 08 jQuery
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
JS算法题之查找数字在数组中的索引位置
May 15 Javascript
小程序分享链接onShareAppMessage的具体用法
May 22 Javascript
Vue实现开关按钮拖拽效果
Sep 22 Javascript
Vue中nprogress页面加载进度条的方法实现
Nov 13 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
一个php Mysql类 可以参考学习熟悉下
2009/06/21 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
Yii框架登录流程分析
2014/12/03 PHP
JS模板实现方法
2013/04/03 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
layui表格设计以及数据初始化详解
2019/10/26 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
python flask搭建web应用教程
2019/11/19 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
python 画条形图(柱状图)实例
2020/04/24 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
html如何对span设置宽度
2019/10/30 HTML / CSS
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
工程业务员岗位职责
2013/12/31 职场文书
2014年社会实践活动总结范文
2014/04/29 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
2015高考寄语集锦
2015/02/27 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
初一年级组工作总结
2015/08/12 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL
Android Studio 计算器开发
2022/05/20 Java/Android