Я реализовал редактор Monaco Editor (https://github.com/Microsoft/monaco-editor ) как способ для пользователя вставить JSON.
Я включаю редактор, как только пользователь нажимает кнопку «опубликовать». Проблема в том, что редактор включен внутри функции переключателя. Таким образом, после того, как кнопка была нажата один раз, редактор захочет добавить ее под первым созданным редактором, если клиент снова нажмет ту же кнопку. Есть ли способ «сбросить» редактор, чтобы он фактически не добавлялся, а просто вместо этого либо создал новый, либо использовал уже созданный?
Вот мой текущий код.
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'), {})
либо использовал тот же уже созданный, если он был создан, либо создавал новый каждый раз, когда вводятся эти варианты переключения, чтобы он не добавлял ниже уже созданных.