element tree樹形組件回顯數據問題解決
解決vue+element tree組件 回顯數據時有一個父節點數據下面子節點就都會被選中
1.當el-tree 從後臺拿到數據動態回顯展示出來時,隻要有一個父節點,則下面的所有子節點全部被勾選瞭
如圖所示:
後臺返回的回顯數據隻有33(父節點組織管理)45(子節點個人管理),但是組織管理下的所有子節點都被回顯選中。
2.解決方法代碼如下
先在組件上綁定check-strictly屬性
check-strictly屬性控制是否嚴格的遵循父子不互相關聯的做法,默認為 false
具體參考element官網api。
代碼如下(示例):
<el-tree :data="menuList" :props="menuListTreeProps" node-key="menuId" ref="menuListTree" :check-strictly="isCheck" show-checkbox> </el-tree> export default { data () { isCheck: false, } } //js操作 //首先先拿到後臺返回需要回顯的id數組 假如是showData數組 //第一步先設置 check-strictly綁定的屬性為true 為瞭是解除父子節點的關聯(意思就是點擊勾選父節點的時候下邊的所有子節點都不會選中。) //第二步設置回顯 使用element Api的setCheckedKeys(showData)方法進行設置 //最後回顯成功之後通過$nextTick異步方法再把check-strictly綁定的屬性值設置為false。(一定要有這步操作,不設置的話,勾選父節點子節點不會被勾選中) //具體代碼如下 : this.isCheck= true //重點:回顯之前一定要設置為true this.$nextTick(()=>{ this.$refs.menuListTree.setCheckedKeys(這裡寫接口獲取的數據) //給樹節點賦值回顯 this.isCheck= false //重點: 賦值完成後 設置為false })
這樣問題就解決瞭。
總結
總而言之需要多瞭解element提供的api方法以及屬性的作用,到此這篇關於element tree樹形組件回顯數據問題解決的文章就介紹到這瞭,更多相關element tree樹形組件回顯內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- element的el-tree多選樹(復選框)父子節點關聯不關聯
- element-ui tree 手動展開功能實現(異步樹也可以)
- element-ui tree 異步樹實現勾選自動展開、指定展開、指定勾選功能
- elementui中使用el-tree控件懶加載和局部刷新
- element tree懶加載:load="loadNode"隻觸發一次的解決方案