Ich experimentiere mit Discourse-Themes, bin aber kein Web-/Javascript-Entwickler. Wenn ich mir einige Drittanbieter-Theme-Komponenten ansehe, habe ich diese Frage.
In discourse-header-submenus/javascripts/discourse/connectors/above-site-header/header-submenus.js gibt es diesen Code:
export default {
setupComponent() {
// some code here
},
};
Ganz oben in der Datei gibt es keine Imports.
Wenn ich (strict) JavaScript richtig verstehe, ist der einzige Kontext, auf den der Code innerhalb von setupComponent() zugreifen kann, die Attribute des Objekts, auf dem er ausgewertet wird.
Wenn ich diesen Kontext mit console.log(this) innerhalb der setupComponent()-Funktion betrachte, scheint ich keinen Zugriff auf das sehr praktische api-Objekt zu haben.
Das ist schade!
Außerdem wüsste ich nicht, wie ich es richtig importieren könnte, da der offizielle Wrapper-Code für die Verwendung von API-Funktionen versioniert ist und so aussieht:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("0.12.3", api => {
// code that uses the api here
});
Wie könnte ich von setComponent() aus auf das api-Objekt zugreifen? Oder übersehe ich hier etwas Grundlegendes?