微信小程式之modal彈出框遮罩層元件——可帶文字框
阿新 • • 發佈:2019-02-13
modal彈出框遮罩層可實現提示資訊、驗證碼等功能
然而在官方文件已經刪除了modal的頁面,說要廢棄modal
就個人而言modal元件無法被wx.showModal完全替代。大家都知道小程式的wxml的元件可以通過改變js的值實現重新渲染,而介面是無法實現的
有同感的也不止博主一個人
官方18-5-13的建議要實現此類功能也是用modal
屬性
說下遮罩層實現,通過改變modal的hidden屬性來控制是否顯示,通過監聽confirm方法來確認提交,通過bindinput來監聽modal內表單元件內容
js
Page({ data: { hiddenModal1:true, hiddenModal2:true, input:null }, showModal1:function(e){ this.setData({hiddenModal1:false}) }, model1confirm:function(e){ this.setData({ hiddenModal1: true }) wx.showToast({ title: '我覺得OK', }) }, model1cancel:function(e){ this.setData({ hiddenModal1: true }) wx.showToast({ title: '我覺得不行', }) }, input:function(e){ this.setData({input:e.detail.value}) }, showModal2: function (e) { this.setData({ hiddenModal2: false }) }, model2confirm: function (e) { this.setData({ hiddenModal2: true }) wx.showToast({ title: '確定' +this.data.input, icon:'none' }) }, model2cancel: function (e) { this.setData({ hiddenModal2: true }) wx.showToast({ title: '取消'+this.data.input, icon: 'none' }) } })
wxml
<button type="primary" bindtap='showModal1'>彈出提示modal</button> <button type="default" bindtap='showModal2'>彈出帶文字框的modal</button> <modal hidden="{{hiddenModal1}}" title="提示modal" confirm-text="是" cancel-text="否" bindconfirm="model1confirm" bindcancel="model1cancel"> modal是真的好用 </modal> <modal hidden="{{hiddenModal2}}" title="文字框的modal" confirm-text="提交" cancel-text="取消" bindconfirm="model2confirm" bindcancel="model2cancel"> <input placeholder='請輸入內容' bindinput='input'/> </modal>