Os scripts nos componentes do tema são executados apenas uma vez; como reexecutá-los ao alterar a rota (sem recarregar a página inteira)?
Por exemplo, quero que os scripts em um componente sejam executados mesmo após navegar entre as abas.
Os scripts nos componentes do tema são executados apenas uma vez; como reexecutá-los ao alterar a rota (sem recarregar a página inteira)?
Por exemplo, quero que os scripts em um componente sejam executados mesmo após navegar entre as abas.
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
// seu código
});
</script>
Onde eu colocaria isso se estou construindo um componente de tema? Este é o meu código no momento. Estou tentando re-renderizar o rodapé toda vez que houver uma mudança de rota para que os scripts sejam executados novamente.
Estou recebendo erros estranhos.
Sou um total iniciante e não sei se essa é a maneira correta de fazer isso.
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);
}
});
}
});
Você já tentou olhar para arte/trabalho/código anterior em outro #theme-component semelhante para obter algumas ideias sobre como proceder?
Já vi alguns, mas eles não parecem ter o que estou tentando fazer. Acho que vou procurar mais componentes de tema.
Obrigado, @osioke, e @michaeld
, encontrei exatamente o que eu estava procurando depois de examinar este componente de tema: Homepage Feature