Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

移动或者单击节点,会提示节点找不到 #513

Closed
leeyoshinari opened this issue Oct 16, 2023 · 5 comments
Closed

移动或者单击节点,会提示节点找不到 #513

leeyoshinari opened this issue Oct 16, 2023 · 5 comments

Comments

@leeyoshinari
Copy link

问题:打开第一个文件时,可以任意编辑、移动节点(必须要移动节点),关闭文件后,打开另一个文件,单击或移动哪个节点,就提示哪个节点找不到并报错。如果两次打开的是同一个文件,就不会报错,可以帮看看可能是什么原因吗,谢谢~

报错截图:
image

系统:windows10 家庭版 64位
浏览器:chrome 118.0.5993.71 64位
jsmind版本:0.7.4

以下是主要代码:
1、从后端读取xmind

function read_xmind(file_id) {
    $.ajax({
        type: 'GET',
        url: '/content/get/' + file_id,
        success: function (data) {
            if (data['code'] === 0) {
                let options = {
                    container: 'win-xmind', 
                };
                let jm = new jsMind(options);
                jm.show(data['data']);
            }
        }
    })
}

2、保存 xmind

function save_xmind() {
    let jm = jsMind.current;
    let file_id = $('#win-xmind>.jsmind-inner')[0].id;
    save_text_file(file_id, jm.get_data('node_tree').data);  // 保存接口
    $('#win-xmind')[0].removeChild($('#win-xmind>.jsmind-inner')[0]);  // 移除容器下 jsmind 节点
}
@hizzgdev
Copy link
Owner

在你这个使用场景里,只应该new一次jsmind,否则你用的那个jm对象很可能不是你希望用到的那个。

let jm = new jsMind(options); 

把这句拿出来, read_xmindsave_xmind 里都使用这个 jm 应该就没问题了。

@hizzgdev
Copy link
Owner

另外 save 之后为什么要移除 jsmind-inner 里的内容呢? 你是想清空整个脑图吗?所以这才是你需要反复new的原因?

如果是这个原因的话,可以考虑其他的处理方式,比如加上一层把脑图给挡上之类的。

@leeyoshinari
Copy link
Author

试过把 let jm = new jsMind(options); 拿出来只 new 一次,每次 read_xmind 时只 jm.show(data);,每次 save_xmind 时设置 display 为 none 隐藏起来,但是打开第二个文件时就页面乱了,如下图:
image

@hizzgdev
Copy link
Owner

jsmind绘图时需要知道container的尺寸,所以不要用 display:none,隐藏的话可以用 visibility:hidden

@leeyoshinari
Copy link
Author

感谢,正常了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants