小程序input數(shù)據(jù)雙向綁定實(shí)現(xiàn)方法
我們都知道 vue 中可以使用 modal 來實(shí)現(xiàn) input 內(nèi)容數(shù)據(jù)的雙向綁定。
小程序好像沒有提供相應(yīng)的方法支持,就需要我們自己寫了。
原理
很簡(jiǎn)單,在 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[變量名] 是對(duì)等的,這是 js 基礎(chǔ)
this[targetData] = currentValue;
}
}
效果如下圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript+Canvas實(shí)現(xiàn)簡(jiǎn)單的柱狀圖
這篇文章主要為大家詳細(xì)介紹了JavaScript如何利用Canvas實(shí)現(xiàn)繪制簡(jiǎn)單的柱狀圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
JS+HTML實(shí)現(xiàn)經(jīng)典游戲吃豆人
吃豆游戲可以說是我們80,90后共同的回憶錄,小時(shí)候常常在學(xué)習(xí)機(jī)上玩,所以也就有了強(qiáng)烈的欲望去寫。所以本文將利用JS+HTML實(shí)現(xiàn)這一經(jīng)典游戲,需要的可以參考一下2022-04-04
JavaScript/jQuery 表單美化插件小結(jié)
用過一些表單美化的工具,覺得不錯(cuò),特地分享一下2012-02-02
js中的scroll和offset 使用比較的實(shí)例與分析
這篇文章介紹了js中的scroll和offset使用比較的實(shí)例與分析,有需要的朋友可以參考一下2013-09-09
JavaScript中檢測(cè)變量是否存在遇到的一些問題
要檢測(cè)某一變量是否存在,雖然簡(jiǎn)單但是也要細(xì)心,下面整理了幾點(diǎn),遇到類似問題的朋友可以參考下2013-11-11
js事件監(jiān)聽機(jī)制(事件捕獲)總結(jié)
添加事件的js方法也很多,有直接加到頁(yè)面結(jié)構(gòu)上的,有使用一些js事件監(jiān)聽的方法,由于各個(gè)瀏覽器對(duì)事件冒泡事件監(jiān)聽的機(jī)制不同2014-08-08

