還是上回點擊按鈕出現彈窗,彈窗中有tree組件的功能。我們需要封一個彈窗組件,在彈窗組件里調用tree組件,而為了各個頁面都可以使用這個彈窗,我們在父組件中(這個父組件是彈窗組件的父組件)點擊按鈕(或者需要彈出彈窗的任何東西)時會觸發一個click事件,在它觸發的函數中調用彈窗組件中的負責展開功能的函數,就可以完成功能 。我們以下代碼只做到父組件觸發子組件中的函數,其他功能代碼都已經刪掉。
父組件:
<template> <div> <button @click="dialogOpen">父組件的觸發彈窗按鈕</button> <commonfiltertree ref="dialogtree"></commonfiltertree> </div> </template> <script> import commonfiltertree from "@/components/newCommon/dialog/treeDialog.vue"; export default { components: { commonfiltertree }, methods: { dialogOpen() { this.$refs.dialogtree.dialogOpen(); // 調用子組件的方法dialogOpen } } }; </script>
子組件:
<template> <div class="air-treeDialog-wrappers"> <el-dialog :visible.sync="dialogVisible"></el-dialog> </div> </template> <script> import commonfiltertree from "@/components/newCommon/tree/tree.vue"; export default { data() { return { dialogVisible: false, }; }, methods: { //打開彈出框 dialogOpen() { this.dialogVisible = true; }, //關閉彈出框 dialogClose() { this.dialogVisible = false; } } }; </script>
over