JupyterLab 3.5.0调用fromJSON加载模型后单元格操作消失问题求助
基于WebSocket的JupyterLab多用户笔记本同步问题
我正在开发基于WebSocket的JupyterLab多用户笔记本同步机制,核心操作是通过fromJSON方法合并本地UI单元格数据与服务器端(其他用户编辑的)单元格数据,具体代码如下:
// notebook实例为NotebookPanel // 合并UI单元格数据与服务器端(其他用户编辑的)单元格数据 // `updatedModel`包含服务器端与用户当前笔记本变更的合并单元格数据 notebook.context.model.fromJSON(updatedModel.content);
遇到的问题
- 控制台出现错误
- 单元格操作按钮消失
环境信息
- JupyterLab版本:
3.5.0
复现代码
import {JupyterFrontEnd, JupyterFrontEndPlugin} from "@jupyterlab/application"; import {INotebookTracker, NotebookPanel, NotebookTracker} from "@jupyterlab/notebook"; const testCopyModelFromJSON = (notebookTracker: NotebookTracker) => { notebookTracker.widgetAdded.connect((tracker: NotebookTracker, panel: NotebookPanel) => { let notebook = panel.content; const notebookModel = notebook.model; if (!notebookModel) { return; } const model = notebookModel.toJSON(); notebookModel.fromJSON(model); }); } const plugin: JupyterFrontEndPlugin<void> = { id: 'nbsync-extension:plugin', autoStart: true, requires: [INotebookTracker], activate: (app: JupyterFrontEnd, notebookTracker: NotebookTracker) => { console.info('nbsync-extension started'); app.started .then(() => { testCopyModelFromJSON(notebookTracker); }); app.restored .then(() => { testCopyModelFromJSON(notebookTracker); }); } }; export default plugin;
依赖配置
"@jupyterlab/application": "^3.5.0", "@jupyterlab/notebook": "^3.5.0"
请问是否有人遇到过该问题并找到正确从JSON加载笔记本模型的解决方案?
内容的提问来源于stack exchange,提问作者Jake OS
相关产品推荐
相关产品推荐

