目標:在做一個申請單批量提交刪除的頁面的時候,在沒有選中申請單條目時,將“提交”和“刪除”按鈕置灰,
一開始的思路在el-table的@change獲取到選中項,判斷其長短是否大於0,然后置灰按鈕,
但素,我忘了在列表中選中的條目已經被刪除或者提交后重新獲取表單的時候,“提交”和“刪除”按鈕依然可用!
是什么地方出問題了呢?
因為這時候選中項沒有變化,不會再去執行組件封裝的選中項變化時 檢驗 其選中項 是否大於0的函數了!
el-table有一個clearSelection的方法可以清空選中項,但是在執行后報了錯“clearSelection is not a function”。
因為這個表格是被我封裝過的,在當前組件中是包含el-table的被封裝后的那個組件的名稱,有其自己的作用域。
在父組件調用封裝后的組件名稱下的table特定的函數就報錯了!
refs指向的是當前父組件中占位的子組件,而不特指子組件中的el-table!!
將this.$refs.tableName.clearSelection()方法寫在封裝el-table所在的組件方法中,再在父組件觸發這個函數就可以了.