Привет, @Johani, вот ещё один вариант проблемы «как вызвать триггер или быть вызванным»: я использую версию плагина Custom Header Links в своём плагине. Он создаёт ссылки на некоторые элементы («серверы»), которые создаются в отдельной модели, добавляемой моим плагином. Когда создаётся server, я хочу перестроить ссылки в заголовке, чтобы они вели на два последних созданных сервера. Сейчас я делаю это в инициализаторе, и всё работает, но для обновления после добавления сервера необходимо перезагрузить страницу.
Ты рассказывал, как добавлять и отслеживать триггеры, поэтому я подумал, что смогу разобраться, но страница, которая выполняет эту работу, находится в discourse-subscriptions. Возможно, мне стоит отправить PR в discourse-subscriptions, чтобы добавить
this.appEvents.trigger("purchase-complete")
после завершения покупки (при этом покупка вызывает добавление в группу, что, в свою очередь, вызывает создание сервера и удаление пользователя из группы). Или, если бы я мог просто вызвать перезагрузку после завершения покупки или после нажатия кнопки «OK» в модальном окне «Покупка завершена», это тоже подошло бы, но я не знаю, как это сделать (то, что я пробовал, приводило к бесконечной перезагрузке страницы…)
Так, возможно, здесь:
я хочу добавить
this.appEvents.trigger("successful-transaction")
после установки loading в false, а затем в своём инициализаторе добавить
this.appEvents.on("successful-transaction")
для манипуляции с заголовком?
Думаю, что после этого мне придётся сделать что-то другое, потому что я боюсь, что
api.decorateWidget("header-buttons:before", (helper) => {
return helper.h("ul.pfaffmanager-header-links", headerLinks);
});
добавляет элементы в header-buttons:before, а не заменяет их, поэтому при каждом срабатывании я буду получать всё больше ссылок?