Я немного разбираюсь в темах Discourse, но не являюсь веб-разработчиком или специалистом по JavaScript. Просматривая некоторые компоненты тем сторонних разработчиков, я задался следующим вопросом.
В файле discourse-header-submenus/javascripts/discourse/connectors/above-site-header/header-submenus.js есть такой код:
export default {
setupComponent() {
// какой-то код здесь
},
};
В начале файла нет импортов.
Если я правильно понимаю (строгий) JavaScript, то код внутри setupComponent() будет иметь доступ только к атрибутам объекта, в контексте которого он выполняется.
Когда я проверяю этот контекст с помощью console.log(this) внутри функции setupComponent(), оказывается, что у меня нет доступа к очень удобному объекту api.
Это жаль!
Кроме того, я не знаю, как правильно его импортировать, так как официальный код-обертка для использования функций API имеет версию и выглядит следующим образом:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("0.12.3", api => {
// код, использующий api здесь
});
Как я могу получить доступ к объекту api внутри setComponent()? Или я упускаю что-то фундаментальное?