Vue的iview組件框架select遠程搜索,選中後不刷新的問題

一、場景:彈框內有一個下拉組件(支持搜索),當選擇完數據後彈框關閉,再次打開後,下拉框內的數據是剛纔選中的數據。
緣由:分析後以爲是搜索內容沒有清空,致使下拉的數據只有一個node

二、解決方案後端

a 、解決:調用下setQuery方法,僞代碼以下:瀏覽器

<select ref="select">
<option>1</option>
<option>2</option>
</select>
app

this.$refs.select.setQuery(null)框架

每次代開彈框後,下拉數據是所有了iview

b、UI框架採用了iview,用的select組件的自動補全功能,也就是select組件的遠程搜索功能this

問題描述:第一次輸入查詢關鍵字,匹配到一條數據,選中後,再次輸入查詢關鍵字,若是和上次匹配到的條數length相同,選中時候結果發現匹配到的結果仍是上一條的,並無刷新。調試

解決過程:非常鬱悶。斷斷續續弄了一週,猜測各類可能性,還在項目裏的node_modules文件夾iview的源碼裏寫console,可是都沒有輸出任何信息,打的斷點也不起做用,我一直覺得是沒法調試,困擾了許久,偶然間,竟然發如今瀏覽器裏是能夠調試的,blog

原來藏在這裏,被本身蠢哭了!!!rem

能夠調試後,找問題就簡單了許多,此次最大的收穫就是發現了怎麼調試node_modules下模塊的代碼。

看了源碼,發現只有在this.$on("append"),this.$on("remove")的時候纔會觸發下拉列表的刷新。因此當根據關鍵字查詢得到的下拉列表條數和上次的相等時候,經常會不刷新。

因此我手動在每次請求後端數據以前,先將select的list置爲空。

相關文章
相關標籤/搜索