如何让 Monaco 的 onDidChangeModelContent() 函数在每次击键时触发?

Dyl*_*nSp 6 monaco-editor

我试图捕捉摩纳哥编辑每次击键时内容的价值。我尝试过使用编辑器的功能,但是当使用以下代码在操场onDidChangeModelContent()上尝试时,这似乎不一致:

const editor = monaco.editor.create(document.getElementById("container"), {
    value: "function hello() {\n\talert('Hello world!');\n}",
    language: "javascript"
});

editor.onDidChangeModelContent = e => {
    console.log(editor.getValue());
};
Run Code Online (Sandbox Code Playgroud)

我仅在使用选项卡自动完成智能感知建议时看到控制台条目,而不是在每次击键时看到控制台条目。我是否应该使用另一个事件侦听器,或者我应该尝试其他一些技术?

Dyl*_*nSp 8

弄清楚了; 示例代码使用onDidChangeModelContent()不正确。要设置事件侦听器,客户端代码需要调用 onDidChangeModelContent()而不是设置它。这段代码的工作原理:

editor.onDidChangeModelContent(e => {
    console.log(editor.getValue());
});
Run Code Online (Sandbox Code Playgroud)