テーマコンポーネント内のスクリプトは1回だけ実行されます。ルート変更(完全なページリロードなし)時にスクリプトを再実行するにはどうすればよいでしょうか?
例えば、タグ間を移動した後でも、コンポーネント内のスクリプトが実行されるようにしたいと考えています。
テーマコンポーネント内のスクリプトは1回だけ実行されます。ルート変更(完全なページリロードなし)時にスクリプトを再実行するにはどうすればよいでしょうか?
例えば、タグ間を移動した後でも、コンポーネント内のスクリプトが実行されるようにしたいと考えています。
<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