您好,登錄后才能下訂單哦!
小編給大家分享一下在js中如何解決ng-repeat產(chǎn)生的ng-model中取不到值的問(wèn)題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
最近遇到在ng-repeat產(chǎn)生的textarea中綁定ng-model后,在js中取不到ng-model值的問(wèn)題。
html的代碼結(jié)構(gòu)如下
<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循環(huán)輸出了該題目的選項(xiàng),有的選項(xiàng)后面有輸入框,于是用ng-if控制某個(gè)選項(xiàng)后面添加textarea輸入框。在用ng-model雙向綁定了text10后,當(dāng)輸入框中輸入內(nèi)容時(shí),js中的$scope.text10并不能取得內(nèi)容。
經(jīng)過(guò)查詢發(fā)現(xiàn)原因是,ng-repeat會(huì)產(chǎn)生子作用域,而js中的scope是父作用域的,Angularjs中的作用域向上查找,所以是不能取得ng-repeat中的綁定值的。
解決方案就是把子scope中的值通過(guò)$parent屬性傳遞給父scope,同時(shí)把text10定義為數(shù)組,即前端綁定時(shí)使用$parent.text10[$index],這樣就綁定了每一個(gè)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>
以上是“在js中如何解決ng-repeat產(chǎn)生的ng-model中取不到值的問(wèn)題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。