Редактор ACE "Не удается прочитать свойство 'getValue' из неопределенного" - PullRequest
1 голос
/ 10 июля 2019

В настоящее время я создаю редактор уценки в Angular.

Кодовое поле можно найти здесь: https://codesandbox.io/embed/angular-91d27


Проблема в том, что я пытаюсь получить текущее значение для дальнейшей работы с ним. Концепция заключается в том, что всякий раз, когда код изменяется (onChange()), контент помещается в Angular Service.

В целях тестирования я хочу напечатать текущий контент на странице.

this.codeEditor.on("change", function(e) {
    const code = this.codeEditor.getValue();
    console.log(code);
});

Теперь, когда я что-то печатаю, я получаю следующую ошибку:

ERROR TypeError: Cannot read property 'getValue' of undefined

Если бы кто-нибудь сталкивался с этим раньше, я был бы рад некоторой помощи.
Также мне интересно, если это «правильный способ» справиться с этим, или есть лучшие варианты.

1 Ответ

3 голосов
/ 10 июля 2019

Каждая новая функция определяет свою собственную область действия this.Попробуйте вместо этого использовать функции стрелок .Функции стрелок лексически связывают свой контекст, поэтому this фактически ссылается на исходный контекст.

this.codeEditor.on("change", (e) => {
    const code = this.codeEditor.getValue();
    console.log(code);
});
...