2013-04-01 3 views
2

내 페이지에 jquery-ui 탭 위젯 안에 CodeMirror 인스턴스가 여러 개 있습니다. 나는과 같이 동적으로 이러한 인스턴스를 생성 :CodeMirror가 텍스트 영역을 올바르게 업데이트하지 않습니다.

//Returns a code mirror editor 
editor.create = function(id){ 

    var codeID = "code-" + id; 
    var $node = $('<form><textarea id="' + codeID + '" name="' + codeID + '">test</textarea></form>'); 
    editor.editors[id] = CodeMirror.fromTextArea($node.find("textarea").get(0), editor.options); 

    return $node; 


}; 

각 인스턴스는 editors라는 전역 배열에 저장된다.

일단 생성되면 DOM에 추가됩니다.

var $editor = editor.create(id); 
var tabID = "tabs-" + id; 
var $tab = $('<li id=' + id + '><a href="#' + tabID + '">' + name + '</a> <span class="ui-icon ui-icon-close" role="presentation">Remove Tab</span></li>'); 
var $tabPanel = $('<div id="' + tabID + '"></div>'); 

$tabPanel.append($editor); 

$('#coder > ul').append($tab); 
$('#coder').append($tabPanel); 
coderTabs.tabs("refresh"); 

텍스트 영역에 배치 된 테스트 텍스트가 편집기에 표시됩니다. 그러나 editor.editors[id].save()을 호출해도 텍스트 영역이 업데이트되지 않습니다.

업데이트 할 텍스트 영역을 확보하기 위해 누락 된 단계가 무엇인지 모르겠습니다. 어떤 도움을 많이 주시면 감사하겠습니다!

답변

4

밝혀졌습니다. 어떻게 작동했는지에 대한 개념이 잘못되었습니다. 나는 .save()에서 onBlur까지 추가했다. 그런 다음 데이터로 뭔가를 할 시간이 왔을 때 나는 편집기 인스턴스에서 .getValue()이라고 부른다.

관련 문제