【问题标题】:Uncaught (in promise) TypeError: Cannot read property 'goLineEnd' of undefined - codemirror erors未捕获(承诺中)类型错误:无法读取未定义的属性“goLineEnd”-codemirror 错误
【发布时间】:2020-12-17 12:48:32
【问题描述】:

上次开始编写代码编辑器时,我为我的项目使用了代码镜像。我想添加一个重复的当前行,但还是有问题。 我的代码:

var current_cursor = CodeMirror.doc.getCursor();
var line_content = CodeMirror.doc.getLine(current_cursor.line);
CodeMirror.commands.goLineEnd(CodeMirror);
CodeMirror.commands.newlineAndIndent(CodeMirror);
CodeMirror.doc.replaceSelection(line_content);
CodeMirror.doc.setCursor(current_cursor.line + 1, current_cursor.ch);

我认为变量CodeMirror和CodeMirror对象同名会导致这个错误:

CodeMirror = CodeMirror(document.querySelector('.editor'), {
  extraKeys: { 'Ctrl-D': duplicate_line },
});

你有什么想法吗?

【问题讨论】:

  • 根据错误消息,CodeMirror.commands 不是对象。仔细检查 CodeMirror 的文档并确保 a) commands 绝对是对象的名称,并且 b) 您所遵循的文档适用于您正在使用的 CodeMirror 版本。
  • 是的,我在 codemirror.net/doc/manual.html#commands 上检查过,但我认为问题出在 CodeMirror 字上

标签: javascript editor codemirror


【解决方案1】:

我终于找到了答案。我不知道为什么我的代码不起作用。对于遇到同样问题的每个人:

async function duplicate_line()
{
    var current_cursor = CodeMirror.doc.getCursor();
    var line_content = CodeMirror.doc.getLine(current_cursor.line);
    CodeMirror.execCommand('goLineEnd');
    CodeMirror.execCommand('newlineAndIndent');
    CodeMirror.doc.replaceSelection(line_content);
    CodeMirror.doc.setCursor(current_cursor.line + 1, current_cursor.ch);
}

【讨论】:

    猜你喜欢
    • 2021-05-13
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 2018-10-29
    • 2020-12-15
    • 2017-08-12
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多