首页 文章

摩纳哥编辑'onChange'活动?

提问于
浏览
2

我刚刚开始调查摩纳哥,将其用作我们内部代码游乐场的编辑器 . 而且无论何时通过键入,粘贴或删除,编辑器窗口中的文本都会被更改,我无法弄清楚如何创建处理程序 . 对于上下文,使用CodeMirror编辑器,我只是做了:

editor.on('change', function(editor, change) {
    render();
});

这是我创建基本编辑器的JavaScript:

require.config({ paths: { 'vs': '../node_modules/monaco-editor/min/vs' }});
require(['vs/editor/editor.main'], function() 
{
    window.editor = monaco.editor.create(document.getElementById('editor'),                 
    {
        value: [
            'var canvas = document.getElementById("playground");',
            'var ctx = canvas.getContext("2d");',
            'ctx.fillStyle = "#FF00FF";',
            'ctx.fillRect(0,0,150,75);',
        ].join('\n'),
        language: 'javascript'
    });
});

谢谢!

2 回答

  • 2

    前几天我找到了onDidChangeContent方法 .

    在您的示例中,您将像这样附加侦听器:

    window.editor.model.onDidChangeContent((event) => {
      render();
    });
    
  • 6

    经过大量的探索和实验,我确实找到了一些东西 . 我还没有弄清楚创建编辑器和使用模型创建编辑器之间的区别(不是我看过的),但以下内容适用于我:

    var monEditor;
    require.config({ paths: { 'vs': '../node_modules/monaco-editor/min/vs' }});
    require(['vs/editor/editor.main'], function() 
    {
        monEditor = monaco.editor.create(document.getElementById('editor'),                 
        {
            value: [
                'var canvas = document.getElementById("playground");',
                'var ctx = canvas.getContext("2d");',
                'ctx.fillStyle = "#FF00FF";',
                'ctx.fillRect(0,0,150,75);',
            ].join('\n'),
            language: 'javascript'
        });
        monEditor.onDidChangeModelContent(function (e) {
            render();
        });
    });
    

    仅使用onDidChangeContent对我来说不起作用 .

相关问题