小程序 input 數據雙向綁定,實現方法之一

小程序 input 數據雙向綁定,實現方法之一

我們都知道 vue 中可以使用 modal 來實現 input 內容數據的雙向綁定。

小程序好像沒有提供相應的方法支持,就需要我們自己寫了。

原理

很簡單,在 input 上先綁定需要取值的變量,如這個變量名是 name,然後再定義一個用於指向變量名的屬性 data-modal 這個屬性值設置爲 name,在 input 的綁定方法中將這個屬性值取出,就會知道這個 input 綁定了哪個變量,然後再將 input 的當前值賦給這個變量即可。

實現

wxml

<input id='name' 
    name="name"
    type='text' 
    value='{{name}}'  <!-- input 從 js 中的 data.name 取值 -->
    data-modal='name'  <!-- 這裏通過 data-xx 的形式傳遞一個需要綁定的變量名,之後可以通過 event.dataset.xxx 輕鬆取到 -->
    bindinput='handleInputChange' <!-- 這裏綁定 input 內容變化時的處理方法 -->
    >
</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 基礎
    this[targetData] = currentValue;  
    
  }
}

效果如下圖:

output.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章