Я использую Ace Editor и хочу динамически обновлять содержимое всплывающего окна автозаполнения при установке флажка.Я использую angular и машинописный текст.
У меня есть:
export let autoCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
this.wordList = getWordList();
callback(
null,
this.wordList.map(function(word) {
return {
caption: word,
value: word,
meta: getMetaIdentifier(word)
};
})
);
}
};
Функция getWordList () считывает логические переменные из другого класса, чтобы определить, что должно быть включено в список.Флажки на странице обновляют значения этих логических переменных.
Если я изменю значения в коде, а затем перестрою страницу, wordList обновится, как и должно.проблема в том, что мне нужно пересобрать автозаполнение и список слов динамически при нажатии на флажок.Кажется, что переменная autoCompleter создается только один раз, в начале инициализации страницы.
Мне нужно вытащить этот код в собственный метод, который я могу запускать снова и снова.что-то вроде:
private toggleFoo(): void {
this.foo = !this.foo;
buildCompleter();
}
<input type="checkbox" [checked]="foo" (change)="toggleFoo()"/>
Однако это оказывается трудным, поскольку автозаполнение создается как переменная, а не метод, который я могу запускать снова и снова.
Любая и вся помощь оценена, спасибо.