Скрипты в компонентах темы выполняются только один раз; как их перезапустить при изменении маршрута (без полной перезагрузки страницы)?
Например, я хочу, чтобы скрипты в компоненте выполнялись даже после перехода между тегами.
Скрипты в компонентах темы выполняются только один раз; как их перезапустить при изменении маршрута (без полной перезагрузки страницы)?
Например, я хочу, чтобы скрипты в компоненте выполнялись даже после перехода между тегами.
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
// ваш код
});
</script>
Где это должно находиться, если я создаю компонент темы? Вот мой текущий код. Я пытаюсь перерисовывать футер при каждом изменении маршрута, чтобы скрипты выполнялись заново.
У меня возникают странные ошибки.
Я полный новичок и не знаю, правильно ли я поступаю.
initialize() {
withPluginApi("0.8", api => {
if (settings.Show_footer_on_login_required_page) {
api.modifyClass("controller:static", {
@on("init")
showFooterOnStatic() {
this.set("application.showFooter", true);
}
});
api.onPageChange(() => {
showFooterOnStatic() {
this.set("application.showFooter", true);
}
});
}
});
Пробовали ли вы изучить существующие решения/работы/код в другом похожем #theme-component, чтобы получить представление о том, как это реализовать?
Я посмотрел некоторые из них, но, похоже, в них нет того, что я пытаюсь сделать. Думаю, я изучу больше тем-компонентов.
Спасибо, @osioke, и @michaeld
, я нашел именно то, что искал, пройдя через этот компонент темы: Homepage Feature