首页 > 解决方案 > Forge Viewer 工具栏在离开编辑模式后不显示

问题描述

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

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 传递给启用

        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 上看到工具栏,但所有节点都显示;没有,我的最后一个资源是获取它们并更改要显示的样式;块或其他东西,但我知道查看器有一些东西会触发工具栏再次加载。

标签: javascriptjquerypdfautodesk-forge

解决方案


我只是仔细检查了行为,你是对的 - 简单地调用markupsCore.leaveEditMode不会带回工具栏。为了重新启用工具栏,您还必须“隐藏”标记覆盖,因此您的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();
    }
}

推荐阅读