Ich weiß bereits, dass /my/billing/subscriptions ein Weg ist, den aktuellen Benutzer mit seinem eigenen Benutzerprofil zu verknüpfen, insbesondere mit dem Rechnungsbereich, der zu Discourse Subscriptions gehört. Dies scheint jedoch in meinem untenstehenden Code nicht zu funktionieren, speziell im Ausdruck innerhalb der if-Anweisung. Ich versuche nämlich, einen Button nur auf der Rechnungsseite des Benutzers anzuzeigen. Tatsächlich scheint es für keine URL der Form /my zu funktionieren, egal ob es sich um Billing, Einstellungen, Aktivitäten oder etwas anderes handelt. Mache ich etwas falsch? Was sollte ich stattdessen verwenden? (Denken Sie daran: Es funktioniert nur nicht innerhalb der if-Anweisung. Ansonsten funktioniert die Verwendung von /my einwandfrei.)
Ist das nicht so, weil Nutzer sich nie in /my/*-URLs befinden, da es sich lediglich um eine intelligente Weiterleitung handelt?
Zum Beispiel wird /my/preferences auf /u/falco/preferences weitergeleitet, sodass ich mich nie auf der Seite /my/preferences befinde, damit die if-Bedingung in deinem Code ausgelöst wird.
EDIT: Mit console.log habe ich herausgefunden, dass dieser Ansatz im Allgemeinen gut funktioniert. Wenn ich beispielsweise einfach den folgenden Code in ein Skript einfüge:
const user = api.getCurrentUser()
console.log("/u/" + user.username + "/billing/subscriptions")
erhalte ich die gewünschte Ausgabe /u/Miles/billing/subscriptions.
Das Problem tritt jedoch auf, wenn ich versuche, dies innerhalb von setupComponent(args, component) {} unterzubringen. Sobald ich das tue, zeigt console.log nichts mehr an. Ich bin immer noch nicht sicher, was ich falsch mache…
Ich dachte das, weil api.onPageChange(url) bereits vorhanden und einwandfrei ausführbar ist. Beachte bitte, dass ich den Code von hier anpasse, sodass es sehr wahrscheinlich wahr ist, dass ich im setupComponent-Methode Zugriff auf das api-Objekt habe.
Zur weiteren Klärung, hier ist, was ich bisher habe: