Probleme mit renderInOutlet

Ich muss etwas sehr Dummes tun, aber ich kann es nicht sehen. Ich hoffe, dass das Posten hier mich dazu bringt, es zu sehen, damit ich es löschen kann, bevor jemand anderes weiß, wie dumm ich bin.

„HELLO WORLD“ sollte auf der Homepage gerendert werden. Ich sehe „THIS IS THE HOMEPAGE“ in der Konsole. Ich weiß, dass es ausgelöst wird. Aber es ist nicht da.

Dann habe ich versucht, „Extra item“ hinzuzufügen, weil ich keine anderen Ideen hatte. Es wird auch nicht gerendert.

Ich habe Fehler erhalten, bevor ich die Datei in .gjs umbenannt habe, was ein weiterer Beweis dafür ist, dass sie die Datei beachtet und etwas bewirkt.

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>);
    }
  });
});

Ist es möglich, dass die Auslässe noch nicht gerendert wurden und es daher keinen Auslass gibt, an den angehängt werden kann?

onPageChange wird bei einer Routenänderung ausgelöst …

Das klingt nach genau der dummen Sache, von der ich spreche!!

Ich möchte, dass das nur auf der Startseite passiert.

Aber ja! Wenn ich eines dieser Render-Dinger aus onPageChange wegnehme, wird es gerendert.

Wie kann ich das nur machen, wenn die URL / ist?

Vielleicht erstelle ich eine richtige Komponente und füge einen shouldRender()-Aufruf hinzu?

Sie sollten den Router-Dienst (innerhalb einer Komponente) hinzufügen und einen Getter einrichten.

2 „Gefällt mir“

Vielen Dank! Ich weiß meistens, was all diese Wörter bedeuten!

1 „Gefällt mir“

Ich hoffe, das hilft! Bitte gib Bescheid, sobald alles läuft!

1 „Gefällt mir“

Oh, Baby! Ich wusste wirklich, was ein Service ist! Ich wusste wirklich, was ein Getter ist! Jetzt wird mein Text auf der Startseite und nicht auf einer anderen Seite (und vermutlich auf allen anderen!) gerendert.

4 „Gefällt mir“

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Neue Antworten sind nicht mehr erlaubt.