前言:
在今天的项目开发中,遇到了一个问题,就是通过this.$parent.$parent.getHostInf()无法去调用其父组件的父组件的方法(因为此时获取的不是其父组件,而是包含父组件的一个标签)
经研究,解决方法如下:(用组件传值方式)
(1)首先
在需要调用此方法的地方使用this.$emit()进行传值
onClose: function () {
_this.dialogFormVisibleAdd = false
_this.$emit('getHostInf',_this.host_asset_id)
}
(2)然后
在其父组件中,将这个方法绑定,并再在这个getHostInfo方法中再次用this.$emit()传值到这个父组件的父组件中去。
<ip-table :ipData="hostInfoTable.ip_result" :host_asset_id="host_asset_id" @getHostInf="getHostInfo"></ip-table>
getHostInfo(data){
this.$emit('tableDataInit', data)
}
(3)最后
在父组件的父组件中,同样绑定方法,再去调用你最初要调用的那个方法就可以了
<host-information :hostInfoTable="hostInfoTable" :host_asset_id="host_asset_id" @tableDataInit="tableDataInit"></host-information>
tableDataInit(data) {
this.getHostInf(data)
}