You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:50:15