在关闭事件时将标记保存到数据库

问题描述 投票:0回答:1

我正在尝试使用

Autodesk.Viewing.TOOL_CHANGE_EVENT
将标记数据插入云数据库。但是,似乎在通过 `markupsExtension.generateData()

提取标记数据之前触发了此事件

//Make sure the extentions loaded
 viewer?.current?.loadModel(path.urlPath, {}, function onSuccess() {
 viewer?.current?.loadExtension("Autodesk.Viewing.MarkupsCore");
viewer?.current?.loadExtension("Autodesk.Viewing.MarkupsGui");
}); 

 React.useEffect(() => {
    viewer?.current?.addEventListener(
      Autodesk.Viewing.TOOL_CHANGE_EVENT,
      (x) => {
        if (x.active && x.toolName === "markups.core") {
          getAllMarkupsFromDatabase(viewer.current);
        } else if (!x.active && x.toolName === "markups.core") {
        //here the event close before getting the data
          saveMarkupsToDatabase(viewer.current);
        }
      }
    );
  }, [isGeometryLoaded]);
  
//Save the markups data.
async function saveMarkupsToDatabase(viewer: any) {
  const markupsExtension = await viewer.loadExtension(
    "Autodesk.Viewing.MarkupsCore"
  );

  const markupsData = await markupsExtension.generateData();
  console.log({ markupsData });

  //Save to database

   localStorage.setItem("markups", markupsStringData);
 

}

我不确定是否有办法在关闭加价扩展之前获取数据。

reactjs autodesk-forge autodesk-viewer
1个回答
0
投票

我想亚当和我在哥本哈根加速器期间与你一起解决了这个问题,对吧? 的 如果一切都解决了,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.