Problemi con renderInOutlet

Devo stare facendo qualcosa di molto stupido, ma sono incapace di vederlo. Spero che pubblicare qui mi faccia vedere così posso cancellarlo prima che qualcun altro sappia quanto sono stupido.

“HELLO WORLD” dovrebbe essere visualizzato sulla home page. Vedo “THIS IS THE HOMEPAGE” nella console. So che sta funzionando. Ma non c’è.

Poi ho provato ad aggiungere “Extra item” perché non avevo altre idee. Nemmeno questo viene visualizzato.

Ho ricevuto errori prima di rinominare il file in .gjs, quindi è un’ulteriore prova che sta prestando attenzione al file e che sta facendo succedere qualcosa.

import { apiInitializer } from "discourse/lib/api";

export default apiInitializer("1.8.0", (api) => {
  // see if we're on the home page
  api.onPageChange(() => {
    const router = api.container.lookup("service:router");
    const url = router?.currentURL;
    const isHomePage = url === "/";
    api.renderInOutlet("top-notices", <template>Extra item</template>);
    if (isHomePage) {
      console.log("THIS IS THE HOMEPAGE");
      api.renderInOutlet("after-header", <template>HELLO WORLD</template>);
    }
  });
});

È possibile che le outlet non siano ancora renderizzate, quindi non c’è nessuna outlet a cui agganciarsi?

onPageChange viene attivato al cambio di rotta…

Sembra il tipo di cosa stupida di cui sto parlando!!

Voglio che questo accada solo sulla home page.

Ma sì! Se sposto uno di quei rendering fuori da onPageChange, si rende.

Allora come faccio a farlo accadere solo se l’URL è /?

Forse faccio un vero componente e aggiungo una chiamata a shouldRender()?

dovresti aggiungere il servizio router (all’interno di un componente) e configurare un getter.

2 Mi Piace

Grazie mille! Quasi tutta quella terminologia la conosco abbastanza bene!

1 Mi Piace

Spero che questo aiuti! Per favore, conferma una volta che tutto è operativo!

1 Mi Piace

Oh, baby! Sapevo davvero cos’era un servizio! Sapevo davvero cos’era un getter! Ora il mio testo viene visualizzato sulla home page e non su un’altra pagina (e presumibilmente su tutte le altre!).

4 Mi Piace

Questo argomento è stato automaticamente chiuso 30 giorni dopo l’ultimo messaggio. Non sono più consentite nuove risposte.