溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

在js中如何解決ng-repeat產(chǎn)生的ng-model中取不到值的問(wèn)題

發(fā)布時(shí)間:2021-06-26 15:20:00 來(lái)源:億速云 閱讀:113 作者:小新 欄目:web開發(fā)

小編給大家分享一下在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è)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI