Forge Viewer v7:"getViewableUrn is not a function" - 7.33.1

Forge Viewer v7: "getViewableUrn is not a function" - 7.33.1

不确定这是错误还是脚本加载顺序有问题。使用 ES5 但在支持 ES6 的浏览器中。 v6 有效。在升级到 v7 时发现了这一点。

“ChooseViewerItem”中的行(允许我更改可视项的包装函数)- 调用

viewer.loadDocumentNode(document, viewable).then(onItemLoadSuccess, onItemLoadFail);

我错过了什么?

Uncaught TypeError: avDocument.getViewableUrn is not a function
    loadDocumentNode Viewer3D.js:1738
    ChooseViewerItem a9dcd494-cecb-4391-a14e-834f7c7d8172:1280
    onDocumentLoadSuccess a9dcd494-cecb-4391-a14e-834f7c7d8172:1298
    onSuccess Document.js:174
    onSuccessWrapped Xhr.js:565
    onLoad Xhr.js:669
    _rawGet Xhr.js:707
    rawGet Xhr.js:573
    pendGo index.js:54
    go index.js:13
    rawGet Xhr.js:557
    getManifest Xhr.js:855
    doLoad Document.js:227
    load Document.js:231
    launchViewer a9dcd494-cecb-4391-a14e-834f7c7d8172:1272
    promise callback*Initializer envinit.js:629
    launchViewer a9dcd494-cecb-4391-a14e-834f7c7d8172:1261
    <anonymous> a9dcd494-cecb-4391-a14e-834f7c7d8172:922
    Angular 18
    jQuery 13
Viewer3D.js:1738

Document class 与 viewer3D.js 文件中的所有其他基本 class 捆绑在一起,因此应该加载顺序没有问题。

我建议检查您传递给 loadDocumentNode 方法的对象是否实际上是 Document 的实例。

以下是 models/viewables 通常如何加载 Forge Viewer v7.*:

async function loadModelViewable(viewer, urn, guid = null) {
    function onDocumentLoadSuccess(doc) {
        if (guid) {
            viewer.loadDocumentNode(doc, doc.getRoot().findByGuid(guid));
        } else {
            viewer.loadDocumentNode(doc, doc.getRoot().getDefaultGeometry());
        }
    }
    function onDocumentLoadFailure(code, message) {
        console.error(message);
    }
    Autodesk.Viewing.Document.load('urn:' + urn, onDocumentLoadSuccess, onDocumentLoadFailure);
}