ACE 에디터에서 가치를 얻으려면 어떻게 해야 합니까?
사용중입니다ACE
처음으로 편집자를 맡았습니다.저는 그것과 관련된 아래의 질문이 있습니다.
다음의 예를 어떻게 찾을 수 있습니까?
ACE
그 페이지의 편집자?편집자 인스턴스를 유지할 글로벌 변수를 유지하고 싶지 않습니다.요청에 따라 인스턴스를 찾아야 합니다.가치를 얻고 설정하는 방법은?
나는 보다 더 나은 편집자를 위한 제안을 받을 수 있습니다.ACE
거의 모든 종류의 언어/markup/css 등을 지원하고 고도로 통합된 편집자jQuery
.
API별:
마크업:
<div id="aceEditor" style="height: 500px; width: 500px">some text</div>
인스턴스 찾기:
var editor = ace.edit("aceEditor");
값 가져오기/설정:
var code = editor.getValue();
editor.setValue("new code here");
제 경험으로 볼 때 에이스는 제가 본 코드 편집기 중 최고입니다.CodeMirror 등 다른 것들은 거의 없지만 Ace에 비해 활용도가 낮거나 통합이 어렵다는 것을 알게 되었습니다.
다음은 그러한 편집자들의 비교를 위한 위키 페이지입니다.
제가 시도해보지 않은 유료도 있습니다(그리고 지금은 기억이 나지 않습니다).제가 찾을 수 있다면 나중에 업데이트할 것입니다.
편집기의 내용을 저장하기 위해 숨겨진 입력을 바로 앞에 두고 편집기를 이렇게 초기화했습니다.
var $editor = $('#editor');
if ($editor.length > 0) {
var editor = ace.edit('editor');
editor.session.setMode("ace/mode/css");
$editor.closest('form').submit(function() {
var code = editor.getValue();
$editor.prev('input[type=hidden]').val(code);
});
}
제 양식이 제출되면 편집자 값을 받아 숨겨진 입력에 복사합니다.
숨겨진 입력으로 이 문제를 해결합니다 :)
<input type="hidden" name="komutdosyasi" style="display: none;">
<script src="/lib/aceeditor/src-min/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
var editor = ace.edit('editor');
editor.session.setMode("ace/mode/batchfile");
editor.setTheme("ace/theme/monokai");
var input = $('input[name="komutdosyasi"]');
editor.getSession().on("change", function () {
input.val(editor.getSession().getValue());
});
</script>
html의 태그에 에이스 편집기를 초기화했다고 가정해 보겠습니다. EX:<div id="MyAceEditor">this the editor place holder</div>
.
자바스크립트 섹션에서 ace.js를 로딩한 후,
첫 번째 단계는 아래와 같이 편집자의 인스턴스를 찾는 것입니다.
var editor = ace.edit("MyAceEditor");
ace Editor에서 값을 가져오려면 다음과 같이 getValue() 메서드를 사용합니다.
var myCode = editor.getSession().getValue();
값을 에이스 편집기로 설정하려면(일부 코드를 편집기에 푸시하려면),setValue()
방법은 아래와 같습니다.
editor.getSession().setValue("write your code here");
이에 대응하여 아래의 간단한 추가 줄:
onChange={(값) => handleAceText(값)}
import React from 'react';
import ReactAce from 'react-ace-editor';
const CodeEditor = ({ handleAceText, aceRef }) => {
return (
<ReactAce
mode='html'
theme='eclipse'
setReadOnly={false}
onChange={(value) => handleAceText(value)}
style={{ height: '300px' }}
ref={aceRef}
/>
);
};
export default CodeEditor;
var editor = AceEditor.getCurrentFileEditor("MyEditor");
그러면 현재 편집기 개체가 반환됩니다.
var code = editor.getValue();
이렇게 하면 편집기 내의 텍스트가 반환됩니다.
다음 코드를 사용하여 에이스 에디터의 가치를 얻으십시오. html은
<div id="aceEditor" style="height: 500px; width: 70%">some text</div>
그리고나서
<script >
var some = $('#aceEditor');
some.keyup(function() {
var code = editor.getSession().getValue();
$.ajax({
type: "POST",
url: "{% url 'creatd-new' %}",
data: {'code':code},
success: function (data) {
console.log("foo");
}
});
}
</script>
load 이벤트에 리스너를 추가하면 다음과 같은 인스턴스가 나타납니다.
onLoad={(editor) => {
this.sourceEditor=editor;
}}
나중에 조작할 수 있을 겁니다
언급URL : https://stackoverflow.com/questions/8963855/how-do-i-get-value-from-ace-editor
'programing' 카테고리의 다른 글
XML을 PSObject로 변환 (0) | 2023.10.21 |
---|---|
크론잡 아니면 MySQL 이벤트? (0) | 2023.10.21 |
상수 함수에 대한 포인터의 의미는 무엇입니까? (0) | 2023.10.21 |
jQuery 또는 자바스크립트만으로 버튼을 다른 페이지로 리디렉션하는 방법 (0) | 2023.10.16 |
자바스크립트 효율성: 'for' vs 'for each' (0) | 2023.10.16 |