Невозможно создать экземпляр редактора в Angular - PullRequest
0 голосов
/ 21 июня 2020

Я пытаюсь создать редактор кода

У меня есть компонент, который отображает условно

 <ace-editor [(text)]="text" #editor style="height:150px;"></ace-editor>

И у меня есть ловушка ngAfterViewInit Lifecycle, в которой я устанавливаю все параметры редактора.

ngAfterViewInit() {
console.log('After view init called...');
this.editor.setTheme('monokai');
this.editor.setMode('text');
this.editor.getEditor().setShowPrintMargin(false);
this.editor.getEditor().setFontSize(16);
// this.editor.setReadOnly(true);
this.editor.getEditor().setOptions({
  // enableBasicAutocompletion: true,
});

this.editor.getEditor().commands.addCommand({
  name: 'showOtherCompletions',
  bindKey: 'Ctrl-.',
  exec: function (editor) {},
});

}

Я обращаюсь к редактору, используя ссылочную переменную шаблона, используя @ViewChild внутри моего файла .ts. Но в браузере я получаю сообщение Cannot read property setTheme of undefined.

1 Ответ

0 голосов
/ 21 июня 2020

Думаю, это связано с Metadata Properties вашего @ViewChild в файле .ts.

Вы можете найти их здесь https://angular.io/api/core/ViewChild

В данном случае , вы можете изменить свойство stati c вашего ViewChild. примерно так:

 @ViewChild('viewMe', { static: true })

Если вы опубликуете больше о файле .ts, будет легче сказать, что происходит.

UPDATE:

на основе комментария : Причина этой ошибки находится внутри ngAfterViewInit, ваш <ace-editor #editor></<ace-editor> не готов, поэтому this.editor не определен. вам следует изменить лог c или вызвать все this.editor.XXX в то время, когда отображается <ace-editor #editor></<ace-editor>.

...