我对Vue使用DHTMLX GANTT。
创建甘特图后,当我切换到另一个页面并返回时,并不是所有的函数都可用。
在dhtmlx论坛中,他们给出了一个链接:https://docs.dhtmlx.com/gantt/desktop
但是,如果我尝试在应用程序中执行相同的操作,则不会定义const ganttChart = Gantt.getGanttInstance();
方法。
有没有办法完全销毁vue中的组件?我尝试了v-if
,:key
,$forceUpdate()
,但都没有成功。DOM中仍然保留了一些gantt组件。当我刷新页面时,它起作用了。
有没有其他方法可以销毁他从头开始呈现的组件?
发布于 2021-10-26 11:53:04
在Vue中,gantt.destructor函数也给我带来了一些问题。
我解决了这个问题,在like beforeDestroy Vue生命周期中更改甘特图引用并分离初始化过程中附加的事件,如下所示:
<div class="gantt" :id="ganttId"></div>
mounted () {
this.ganttId = 'gantt-' + this.createUUID()
this.initializeGannt()
}
beforeDestroy() {
gantt.detachEvent("onTaskClick");
gantt.detachEvent("onAfterTaskUpdate");
}
methods {
initializeGannt () {
...
gantt.attachEvent("onTaskClick", (id, e) => {
...
}, {id: "onTaskClick"});
gantt.attachEvent("onAfterTaskUpdate", (id, e) => {
...
}, {id: "onAfterTaskUpdate"});
...
}
}
发布于 2020-11-18 01:08:00
Gantt
对象仅存在于试用版、企业版和旗舰版中。
要销毁甘特实例,可以调用gantt.destructor
方法:
https://docs.dhtmlx.com/gantt/api
它将在所有甘特图版本中工作。这个方法应该会销毁Gantt容器,但是它的resize监视器仍然存在:
销毁甘特图后,在重新加载页面或创建新的甘特图实例之前,您将无法再次使用它。
https://stackoverflow.com/questions/64786607
复制相似问题