1. 程式人生 > >iview穿梭框(Transfer) filterable搜尋條件清除

iview穿梭框(Transfer) filterable搜尋條件清除

問題:

iview提供的穿梭框元件未提供在filterable開啟時,清除搜尋框中輸入內容功能。在專案中遇到問題,將穿梭框放在model中操作,有搜尋條件時模態框再次開啟搜尋條件仍然存在。

解決:

1、首先在iview官網上未找到可解決該問題的方式,但是去看了Element-UI提供了相應的功能
這裡寫圖片描述

2、其次去GitHub上也沒有找到類似的issue
3、重點來了:
在檢視 【Transfer 穿梭框】相應的原始碼時發現如下程式碼:
這裡寫圖片描述
這裡寫圖片描述
在這裡可以看出為元件傳值的欄位是【query】(這個在官方文件中也有體現,只是在這裡得到了確認),如果可以在專案中獲取到該欄位,將其置空感覺可以解決問題。

下面爭取找到【query】所在位置:

  • 在呼叫穿梭框的位置列印整個this物件,將滑鼠放在其子元件的$el上,在瀏覽器會只是其在頁面中對應的位置,如此一級級縮小範圍

這裡寫圖片描述

  • 終於在第三級找到了【query】,因為穿梭框存在兩個所搜框,所以你會找到兩個對應的【query】
    這裡寫圖片描述

4、最終選擇在模態框消失的毀掉中置空上面兩處的值,具體程式碼如下:

$('#xxx').on('hidden.bs.modal', () => {
        this.$children[2].$children[0].query = ''
        this.$children[2].$children[2
].query = '' })
後記:

通過這個過程瞭解了另外一種解決問題的思路:通過獲取虛擬DOM中的資料解決問題。需要指出該方式不是正統方式,救急不救窮,不在萬不得已的時候不要使用!!