第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當使用 JavaScript 更改 <select> 時,ng-model 不會更新

當使用 JavaScript 更改 <select> 時,ng-model 不會更新

陪伴而非守候 2023-08-21 17:56:58
我正在嘗試使用 javascript 和 AnglersJS 創(chuàng)建一個自定義下拉框,將數(shù)據(jù)綁定到選擇。并非所有代碼都在這里,但它應該工作的方式是用戶單擊一個使用未發(fā)布的代碼創(chuàng)建的 div(充當選項選擇),然后該 div 調(diào)用一個函數(shù)來更改select標簽選擇的索引和值,(不直接改變$scope中的模型)。data-ng-model 應該正在更新,但是該模型不會更新其值。我嘗試過調(diào)用 $apply() 和 $digest() 但都不起作用。選擇標簽顯示索引和值已更改,但模型未拾取它。注意:我的 Javascript 使用 data-bp-placeholder 創(chuàng)建自定義下拉列表。超文本標記語言<div class="bp-select" data-bp-placeholder="Choose">    <select data-ng-model="count.amount">        <option value="0">0</option>        <option value="1">1</option>        <option value="2">2</option>        <option value="3">3</option>        <option value="4">4</option>        <option value="5">5</option>        <option value="6">6</option>        <option value="7">7</option>        <option value="8">8</option>        <option value="9">9</option>    </select></div>JavaScriptselectElement.selectedIndex = i;selectElement.value = optionList[i].value;“selectElement”是選擇標簽,“i”是索引,“optionsList”只是選項標簽值的列表。在選擇標簽的值更改后,如何讓 ng-model 更新其值。
查看完整描述

2 回答

?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

您似乎正在直接操作 DOM,您應該避免這種情況,因為 AngularJs 可能無法識別它。要以正確的 AngularJs 方式進行操作,您需要更改兩個地方:

  • 將用戶輸入分配給模型而不是 DOM 元素,正如已經(jīng)回答的那樣

  • 您的data-bp-placeholder處理程序似乎selectElement通過直接 DOM 操作動態(tài)添加選項值(appendChild我想是通過使用)。你也許應該嘗試這個:

$scope.count.amounts = Array.from(Array(10).keys()); // Create scope array variable of whatever your list is

那么你的 HTML 可能看起來像這樣,可能不需要data-bp-placeholder

<select data-ng-model="count.amount" data-ng-options="amount for amount in count.amounts">
</select>


查看完整回答
反對 回復 2023-08-21
?
一只斗牛犬

TA貢獻1784條經(jīng)驗 獲得超2個贊

該ng-model指令僅在用戶選擇值時更新范圍模型。value當 JavaScript 修改元素的屬性時,它不會更新作用域模型<select>。


<select data-ng-model="count.amount">

    <option value="0">0</option>

    <option value="1">1</option>

    <option value="2">2</option>

    <option value="3">3</option>

    <option value="4">4</option>

    <option value="5">5</option>

    <option value="6">6</option>

    <option value="7">7</option>

    <option value="8">8</option>

    <option value="9">9</option>

</select>

要從 JavaScript 更新作用域模型:


$scope.count.amount = "5";

請務必使用字符串而不是數(shù)字。


查看完整回答
反對 回復 2023-08-21
  • 2 回答
  • 0 關(guān)注
  • 170 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號