原文:https://blog.csdn.net/CarryBest/article/details/79959389app
今天作項目時,用elementUI框架,須要下拉框隱藏時出發某個函數,用了visible-change這個函數,發現點擊時會觸發兩次我本身定義的函數,看了下官網的解釋 :下拉框出現/隱藏時觸發 若是隻想在下拉框隱藏時觸發該怎麼作呢?下面是解決辦法:
官網定義:
Select Events框架
@visible-change 函數裏面傳遞兩個參數(第一個爲回調參數,第二個爲本身定義的參數)函數
前臺頁面:this
<el-select v-model="AREACODE" placeholder="請選擇" clearable @visible-change="changeValue1($event,AREACODE)"> <el-option v-for="item in AreaOptions" :key="item.AREACODE" :label="item.NAME" :value="item.AREACODE"> </el-option></el-select>
JS:url
changeValue1:function(callback,vc){ //只有回調參數爲false時才觸發 ctx.getAreaListDataSearch(vc,1)這個函數; console.log("回調參數"+callback); if(!callback){ var ctx = this; ctx.AREACODE2='請選擇'; if(vc!=""){ ctx.show2 = true; ctx.getAreaListDataSearch(vc,1); } } },
這樣就解決了這個函數會默認調用兩次你本身定義函數的問題
spa
備註:.net
el-select的visible-change="changeValue1($event,AREACODE) 會傳遞兩個參數,即把選中的值也會傳給函數,可是el-cascader的不會傳這個值,那麼如何獲取選中的值呢,code
方法一:orm
判斷this.$refs['cascaderAddr'].getCheckedNodes()非空列表,使用this.$refs['cascaderAddr'].getCheckedNodes()[0] 參考:https://blog.csdn.net/lijiabinbbg/article/details/97396812blog
方法二:使用change
<el-cascader id="el-cascader" v-model.trim="formTemp.service" :disabled="currentStep!='apply'" :options="serviceOptions" :props="{ expandTrigger: 'hover' }" :show-all-levels="true" separator="." @change="handleServiceSelect" > </el-cascader>
在methods中定義
handleServiceSelect(serviceInfo) { // 這塊會自動傳這個serviceInfo值的注意var serviceKey = serviceInfo.join('.') },