解决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 相关文章推荐
网页右下角弹出窗体实现代码
Jun 05 Javascript
jQuery中is()方法用法实例
Jan 06 Javascript
javascript实时显示北京时间的方法
Mar 12 Javascript
js阻止默认浏览器行为与冒泡行为的实现代码
May 15 Javascript
jQuery获取多种input值的简单实现方法
Jun 20 Javascript
JavaScript-html标题滚动效果的简单实现
Sep 08 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
Jan 26 Javascript
JS实现无缝循环marquee滚动效果
May 22 Javascript
jQuery选择器中的特殊符号处理方法
Sep 08 jQuery
Angular HMR(热模块替换)功能实现方法
Apr 04 Javascript
JS实现图片转换成base64的各种应用场景实例分析
Jun 22 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
Jun 26 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从FLV文件获取视频预览图的方法
2015/03/12 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
Javascript中Eval函数的使用
2010/03/23 Javascript
jQuery 表格插件整理
2010/04/27 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
javascript self对象使用详解
2016/10/18 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
python读写ini文件示例(python读写文件)
2014/03/25 Python
使用Python写CUDA程序的方法
2017/03/27 Python
Python面向对象基础入门之编码细节与注意事项
2018/12/11 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
YII2 全局异常处理深入讲解
2021/03/24 PHP
初中政治教学反思
2014/01/17 职场文书
勤俭节约倡议书
2014/04/14 职场文书
加入学生会演讲稿
2014/04/24 职场文书
三严三实对照检查材料
2014/08/25 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python
JS实现九宫格拼图游戏
2022/06/28 Javascript