node.js - Forge-Application BIM 360 查看器下拉选择项目
问题描述
如何在 BIM 360 Viewer forge 应用程序、NodeJS 应用程序中为用户获取所有可用项目的下拉选择。
解决方案
您可以在服务器端 Node.js 应用程序中使用 Forge SDK,以使用此端点获取特定 BIM 360“集线器”的所有项目列表:https ://forge.autodesk.com/en/docs/data/ v2/reference/http/hubs-hub_id-projects-GET。Node.js 代码可能如下所示:https ://github.com/petrbroz/forge-hubs-browser-nodejs/blob/develop/services/forge.js#L64-L67 。然后,您的客户端 JavaScript 可以获取此项目列表,并<select>
使用它们填充元素。
或者,您也可以直接从客户端检索项目列表。这就是我在这个演示应用程序中所做的:https ://forgeextraderivatives.z6.web.core.windows.net 。我将以下脚本添加到我的 HTML 中:
<script src="https://cdn.jsdelivr.net/npm/forge-server-utils/dist/browser/forge-server-utils.js"></script>
然后,在从服务器端获取访问令牌后,我执行以下操作:
const bim360Client = new forge.BIM360Client({ token: '...' });
async function updateProjectsDropdown() {
const $projects = $('#projects');
$projects.empty();
const projects = await bim360Client.listProjects($('#hubs').val());
for (const project of projects) {
$projects.append(`<option value="${project.id}">${project.name}</option>`);
}
}
推荐阅读
- javascript - “CORS 问题 - 403 禁止”在 javascript 中使用 xmlhttprequest
- javascript - JavaScript 函数不能按照 JSON 响应工作
- javascript - 为什么 regExp 在 diff senarios 中有 diff 结果?
- in-app-purchase - 如何在沙盒环境中测试 `DID_FAIL_TO_RENEW` 、 `CANCEL` 和任何其他事件
- android - 如何在android中使用cordova在后台打包和执行二进制文件?
- vue.js - vue在一个组件中打开一个组件
- jquery - 匹配 JQuery 中的确切字符串
- javascript - 如何使一组三角形相互碰撞?
- pyomo - Pyomo 中有余数运算符吗?我发现“%”运算符不能在表达式或约束定义中工作
- mysql - 仅当两列冲突时 Laravel upsert