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