2017-12-04 41 views
1

에이스 편집기에서 줄 바꾸기 이벤트를 캡처하려고합니다. 사용자가 Enter 키를 누를 때마다 줄이 바뀌고 console.log에 현재 줄 번호가 표시됩니다. 다음 코드를 실행하려고합니다.에이스 편집기에서 라인 변경 이벤트를 어떻게 감지합니까?

editor.getSession().getRowLength().on('change', function(event) { 
    if (lineno ==1){ 
     //execute abc} 
    else if (lineno==2){ 
     //execute xyz} 
}); 

나는

tryit-ide.js:20 Uncaught TypeError: editor.getSession(...).getRowLength(...).on is not a function 
at tryit-ide.js:20 
at setUp (arch_ace-editor.js?hash=d1163619d62832acc5c961ddb94093c49630a447:78) 
at callback (arch_ace-editor.js?hash=d1163619d62832acc5c961ddb94093c49630a447:98) 
at arch_ace-editor.js?hash=d1163619d62832acc5c961ddb94093c49630a447:111 
at XMLHttpRequest.request.onreadystatechange (arch_ace-editor.js?hash=d1163619d62832acc5c961ddb94093c49630a447:53) 

감사합니다 다음과 같은 오류를 얻을.

답변

0

오류는 단지 숫자에 이벤트 수신기를 추가한다고 말합니다. 시도해보십시오.

editor.session.on('change', function(delta) { 
    var lineno = delta.start.row 
    if (lineno ==1){ 
     //execute abc} 
    else if (lineno==2){ 
     //execute xyz} 
}); 
+0

답장을 보내 주셔서 감사합니다. 어쩌면 내가 문제를 제대로 설명하지 않았을 수도 있습니다. 문제는 에디터가 무언가가 라인에 삽입 될 때마다 no라는 "abc"를 실행한다는 것인데, 사용자가 라인 1을 입력 할 때 한 번만 실행하고 라인 2를 입력 할 때 실행을 멈추기를 원한다. –

+0

아무 것도 없다. line 이벤트가 발생하면 change 이벤트를 사용하고 delta.start.row를 사용하여 변경된 행을 찾아야합니다. –

+0

또는 커서가 1 행으로 이동합니까? –