#javascript #durandal #ace-editor
#javascript #durandal #ace-editor
Вопрос:
У меня есть этот код внутри compositionComplete()
this.docEditor = aceEditorBindingHandler.getEditorBySelection($(docEditorSelector);
// this.docEditor is of type AceAjax.Editor
if (this.docEditor) {
this.docEditor.getSession().on("tokenizerUpdate", () => {
// do stuff
});
}
но оно никогда не попадает.
Если я изменю событие на ‘ change
‘, то при изменении содержимого будет отображен код.
Но это не то, что мне нужно.
Есть идеи? кто-нибудь?
Ответ №1:
Обновление токенизатора не вызывается синхронно, аналогично событию изменения. Смотрите пример ниже для демонстрации его работы.
<script src=https://ajaxorg.github.io/ace-builds/src-noconflict/ace.js></script>
<script>
editor = ace.edit(null, {
mode: "ace/mode/javascript",
minLines: 5,
maxLines: 10,
})
var log = ace.edit(null, {
mode: "ace/mode/javascript",
minLines: 5,
maxLines: 10,
})
document.documentElement.appendChild(editor.container)
document.documentElement.appendChild(log.container)
editor.session.on("tokenizerUpdate", () => {
log.insert("tokenizerUpdate called " Date.now() "n")
})
</script>