离开编辑模式后 Forge Viewer 工具栏不显示

Forge Viewer toolbar not display after leave edit mode

我使用此示例中的代码作为指导:

https://forge-rcdb.autodesk.io/configurator?id=598d7ec14cabf2c1f4dec948

此处提供源代码,但显然代码与示例不同:

https://github.com/Autodesk-Forge/forge-rcdb.nodejs/tree/89e2e0af1d87e3b948cb66bc88f54140c6e8a0e8/src/client/components/Viewer/Extensions/Dynamic/Viewing.Extension.Markup2D

当我单击“关闭”按钮关闭面板时,我想显示工具栏并离开编辑模式/查看模式,但我遗漏了一些东西。 我就是这样做的:

        on('click', '[data-panel-action="finish"]', function (event) {
            event.preventDefault();
            // hide the panel when click button Close
            self.setVisible(false);
        })

它触发 engageEditMode 函数将值 false 传递给 enabled

        panelProto.engageEditMode = function (enabled) {
        var markupsCore = this.markupsCore
        if (enabled) {
            markupsCore.enterEditMode();
            this.selectDefaultAnnotation();
        } else {
            //Should display the toolbar here but I don't know how.
            markupsCore.leaveEditMode();
        }
    }

我可以在我的 HTML 上看到工具栏,但所有节点都显示; none,我最后的资源是获取它们并更改要显示的样式;阻止或其他东西,但我知道查看器有一些东西可以触发工具栏再次加载。

我只是 double-checked 的行为,你是对的 - 简单地调用 markupsCore.leaveEditMode 不会带回工具栏。为了使工具栏成为 re-enabled,您还必须“隐藏”标记覆盖,因此您的 engageEditMode 功能应如下所示:

panelProto.engageEditMode = function (enabled) {
    const markupsCore = this.markupsCore;
    if (enabled) {
        markupsCore.enterEditMode();
        this.selectDefaultAnnotation();
    } else {
        // Should display the toolbar here but I don't know how.
        markupsCore.leaveEditMode();
        markupsCore.hide();
    }
}