Je me débrouille avec les thèmes Discourse mais je ne suis pas développeur web/Javascript. En regardant certains composants de thème tiers, j’ai cette question.
Dans discourse-header-submenus/javascripts/discourse/connectors/above-site-header/header-submenus.js, il y a ce code :
export default {
setupComponent() {
// some code here
},
};
Il n’y a pas d’importations en haut du fichier.
Si je comprends bien le JavaScript (strict), le seul contexte auquel le code dans setupComponent() aura accès sont les attributs de l’objet sur lequel il est évalué.
Lorsque je regarde ce contexte en utilisant console.log(this) dans la fonction setupComponent(), il semble que je n’aie pas accès à l’objet api très pratique.
C’est dommage !
De plus, je ne saurais pas comment l’importer correctement car le code wrapper officiel pour utiliser les fonctions api est versionné et ressemble à ceci :
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("0.12.3", api => {
// code qui utilise l'api ici
});
Comment pourrais-je accéder à l’objet api depuis setComponent() ? Ou est-ce que je manque quelque chose de fondamental ici ?