[英]Reset Monaco Editor state
我已經實現了Monaco編輯器( 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'), {})
使用已創建的相同window.editor = monaco.editor.create(document.getElementById('codeEditor'), {})
如果已創建),或者每次進行此切換時都使用一個新文件輸入了case,因此不會在下面附加已經創建的案例。
您應該在切換功能之外創建monaco代碼編輯器。 在函數內部,您僅應更改模型。
所以在switch()
函數之前
window.editor = monaco.editor.create(document.getElementById('codeEditor'), {
value: '',
language: 'json',
theme: 'vs-dark',
scrollBeyondLastLine: false,
renderWhitespace: true
});
然后在switch()
內部
window.editor.getModel(). setValue(jsonObject);
API在這里可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.