微信小程序中的input組件,用來採集用戶輸入文本,官方組件並未提供接口供清除頁面上顯示的用戶輸入的部分,比如想要做一個按鍵“清除輸入”,就尷尬了,因爲button組件的事件裏沒辦法控制到input組件的屬性。
網上搜了一些方法,比較討巧的方式即,利用page data綁定的方式,即可實現上述功能,當然同時想要在程序中刷新input爲其它信息也是很容易的事情了,具體參考以下代碼:
xx.wxml部分,將input綁定一個變量inputTxt
<view class="page-section">
<view class="weui-cells weui-cells_after-title">
<view class="weui-cell weui-cell_input">
<input class="weui-input" placeholder-style="color:#6aa84f" maxlength="50" placeholder="手動輸入" value="{{inputTxt}}" confirm-type ="send" bindconfirm="bindConfirmControl"/>
</view>
</view>
</view>
xx.js部分,在page data中添加一個變量inputTxt
data: {
inputTxt: ''
}
//在需要的地方調用setData,比如某button的觸發事件中
this.setData ({
inputTxt: 'xxx'
})
我的應用場景是,點擊某button,從預置語料庫中順序挑一條語料,然後刷新到頁面input組件框中顯示,同時處理語料解析語義,獲取語義結果後刷新到輸出框中顯示,具體代碼如下:
bindTest: function () {
log('astro.bindTest')
var corpus = app.globalData.corpus;
if (cursor++ >= corpus.length - 1) {
cursor = 0;
}
//順序選擇一句語料
var corpusSelected = corpus[cursor]
this.setData({
//更新頁面input框顯示
inputTxt: corpusSelected
})
log('selected corpus:' + corpusSelected)
//調用語料處理,刷新輸出框結果
NliProcess(corpusSelected, this);
},
歡迎參與討論!:)