小程序input數(shù)據(jù)雙向綁定實(shí)現(xiàn)方法
我們都知道 vue 中可以使用 modal 來實(shí)現(xiàn) input 內(nèi)容數(shù)據(jù)的雙向綁定。
小程序好像沒有提供相應(yīng)的方法支持,就需要我們自己寫了。
原理
很簡單,在 input
上先綁定需要取值的變量,如這個(gè)變量名是 name
,然后再定義一個(gè)用于指向變量名的屬性 data-modal
這個(gè)屬性值設(shè)置為 name
,在 input
的綁定方法中將這個(gè)屬性值取出,就會(huì)知道這個(gè) input
綁定了哪個(gè)變量,然后再將 input
的當(dāng)前值賦給這個(gè)變量即可。
實(shí)現(xiàn)
wxml
<input id='name' name="name" type='text' value='{{name}}' <!-- input 從 js 中的 data.name 取值 --> data-modal='name' <!-- 這里通過 data-xx 的形式傳遞一個(gè)需要綁定的變量名,之后可以通過 event.dataset.xxx 輕松取到 --> bindinput='handleInputChange' <!-- 這里綁定 input 內(nèi)容變化時(shí)的處理方法 --> > </input>
wxs
Page({ data: { name: String }, handleInputChange: function(e){ // 取出定義的變量名 let targetData = e.currentTarget.dataset.modal; // 取出定義的變量名 let currentValue = e.detail.value; // 將 input 值賦值給 定義的變量名,this.name 可以直接取到在 data 中定義的 name 值,其效果跟 this[變量名] 是對等的,這是 js 基礎(chǔ) this[targetData] = currentValue; } }
效果如下圖:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序購物車、父子組件傳值及calc的注意事項(xiàng)總結(jié)
這篇文章主要給大家介紹了關(guān)于微信小程序購物車、父子組件傳值及calc的注意事項(xiàng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11JavaScript之事件委托實(shí)例(附原生js和jQuery代碼)
下面小編就為大家?guī)硪黄狫avaScript之事件委托實(shí)例(附原生js和jQuery代碼)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07關(guān)于javascript中限定時(shí)間內(nèi)防止按鈕重復(fù)點(diǎn)擊的思路詳解
下面小編就為大家?guī)硪黄P(guān)于javascript中限定時(shí)間內(nèi)防止按鈕重復(fù)點(diǎn)擊的思路詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08ReactHooks+ts(函數(shù)組件)實(shí)現(xiàn)原生輪播的示例
這篇文章主要介紹了ReactHooks+ts函數(shù)組件實(shí)現(xiàn)原生輪播,在這里下載依賴第一個(gè)是js依賴第二個(gè)是ts依賴,通過實(shí)例代碼介紹了創(chuàng)建tsx文件的方法,需要的朋友可以參考下2022-05-05