Javascript 重置编辑器状态
我已经实现了Monaco编辑器()作为用户插入一些JSON的一种方式 一旦用户单击“post”按钮,我就启用编辑器。问题是,编辑器是在开关函数中启用的。因此,一旦按钮被单击一次,如果客户端再次单击同一按钮,编辑器将像追加一样位于第一个创建的编辑器下方。有没有办法“重置”编辑器,这样它就不会实际附加,而是创建一个新编辑器,或者使用已经创建的编辑器 这是我目前的代码Javascript 重置编辑器状态,javascript,monaco-editor,Javascript,Monaco Editor,我已经实现了Monaco编辑器()作为用户插入一些JSON的一种方式 一旦用户单击“post”按钮,我就启用编辑器。问题是,编辑器是在开关函数中启用的。因此,一旦按钮被单击一次,如果客户端再次单击同一按钮,编辑器将像追加一样位于第一个创建的编辑器下方。有没有办法“重置”编辑器,这样它就不会实际附加,而是创建一个新编辑器,或者使用已经创建的编辑器 这是我目前的代码 require.config({ paths: { 'vs': '/scripts/monaco-editor/min/vs' } }
require.config({ paths: { 'vs': '/scripts/monaco-editor/min/vs' } });
switch (id) {
case 'post':
$('#httpMethodGet').css('display', 'none');
$('#httpMethodPost').show();
require(['vs/editor/editor.main'], function () {
monaco.languages.json.jsonDefaults.setDiagnosticsOptions({
schemas: [{
uri: "http://myserver/bar-schema.json",
schema: {
type: "object",
properties: {
q1: {
enum: ["x1", "x2"]
}
}
}
}]
});
var jsonObject = [
'{',
' "$schema": "http://myserver/foo-schema.json"',
"}"
].join('\n');
window.editor = monaco.editor.create(document.getElementById('codeEditor'), {
value: jsonObject,
language: 'json',
theme: 'vs-dark',
scrollBeyondLastLine: false,
renderWhitespace: true
});
});
break;
因此,我希望
window.editor=monaco.editor.create(document.getElementById('codeEditor'),{})
在每次输入此开关案例时,使用已经创建的相同案例,或者创建一个新案例,这样它就不会在已经创建的案例下面追加 您应该在switch函数外创建代码编辑器。
在你的功能中,你应该只改变你的模型
所以在开关()之前
window.editor = monaco.editor.create(document.getElementById('codeEditor'), {
value: '',
language: 'json',
theme: 'vs-dark',
scrollBeyondLastLine: false,
renderWhitespace: true
});
然后在开关()内
API是可用的。您应该在switch函数之外创建代码编辑器。
在你的功能中,你应该只改变你的模型
所以在开关()之前
window.editor = monaco.editor.create(document.getElementById('codeEditor'), {
value: '',
language: 'json',
theme: 'vs-dark',
scrollBeyondLastLine: false,
renderWhitespace: true
});
然后在开关()内
API是可用的。我找到了一个解决方案,并认为我当时无论如何都不能使用monaco.editor,所以我改为CodeMirror。不过,感谢您的回复——据我所知,这看起来是一个非常有效的解决方案:-)我找到了一个解决方案,并认为我当时无法使用monaco.editor,所以我改为CodeMirror。不过,感谢您的回复——据我所知,这似乎是一个非常有效的解决方案:-)