Le code de changement ne fonctionne pas dans l'éditeur VS Studio code

Lorsque je prends du code dans un dossier hbs sur localhost et que je le place dans un autre dossier hbs, cela ne fonctionne pas. Du texte y est inséré et il se trouve sur cette page, mais il n’a absolument aucune fonctionnalité. Après avoir actualisé la page, tout est réinitialisé car c’est juste comme une chaîne de caractères.

Pouvez-vous m’aider ?

Si, par exemple, je voulais insérer tout le contenu de interface.hbs dans account.hbs pour qu’il ait une fonctionnalité, que devrais-je faire ?

Je pense que répondre à cette question aiderait beaucoup de monde.

Merci pour votre réponse.

Les choses sont un peu plus compliquées que cela. Ceci n’est pas lié à votre éditeur, VS Code est un excellent choix.

Discourse est une application monopage MVC qui utilise EmberJS côté front-end et utilise des Routes, des Models, des Controllers et des Templates.

Changer uniquement les Templates n’est généralement pas suffisant.

Il serait vraiment bon pour vous de faire quelques lectures sur EmberJS.

Mais par exemple, une partie de la raison pour laquelle il n’y a pas de fonctionnalité est que les Controllers sont différents.

Voici tous les Controllers pour cette partie de l’application côté javascript :

https://github.com/discourse/discourse/tree/main/app/assets/javascripts/discourse/app/controllers/preferences

La légère complication ici est que parfois les Components répondent aux actions, tout comme les Controllers.

En plus de cela, vous pourriez avoir à vous soucier du modèle présenté à chacune de ces différentes Routes.

Les Routes de préférences sont ici avec le préfixe preferences :

https://github.com/discourse/discourse/tree/main/app/assets/javascripts/discourse/app/routes

Cela devient encore plus complexe, car les données qu’Ember voit sont presque toujours livrées à l’origine par le back-end et sont donc affectées par les Routes, les Controllers (et souvent les Models) et les Serializers de Rails côté back-end. Voir https://guides.rubyonrails.org/

4 « J'aime »

Essayez-vous d’apporter des modifications au noyau (vous ne voudriez presque certainement pas faire cela) ou développez-vous un plugin ? Si ce n’est pas déjà fait, consultez Guide du débutant pour la création de plugins Discourse Partie 1 : Création d’un plugin de base.

3 « J'aime »

Oui, car j’ai besoin d’obtenir certaines fonctions ailleurs

Vous pouvez « obtenir certaines fonctions ailleurs » dans un plugin. Si vous effectuez un fork de Discourse, vous le regretterez si vous souhaitez l’utiliser pendant plus d’un mois. J’ai développé un tableau de bord qui vous permet d’installer et de gérer Discourse en tant que plugin.

5 « J'aime »

J’ai téléchargé un plugin sur Discourse, et j’ai remplacé dans plugins/notebook-main/assets/javascripts/discourse/controllers/notebook.js.es6, j’ai remplacé ce fichier par le fichier d’interface nécessaire + j’ai fait de même avec le template hbs.

Tout fonctionne en théorie, sauf que nous ne voulons pas sauvegarder les modifications.

Uncaught Error: Property set failed: object in path "model.user_option" could not be found.
    Ember 3
    save notebook:194
    _join backburner.js:995
    join backburner.js:760
    Ember 4
    _triggerAction d-button.js:137
    click d-button.js:106
    Ember 2
    _run backburner.js:1013
    _join backburner.js:989
    join backburner.js:760
    Ember 6
    jQuery 8
    initialize click-interceptor.js:15
    initialize app.js:47
    runInstanceInitializers Ember
    each dag-map.js:231
    walk dag-map.js:145
    each dag-map.js:75
    topsort dag-map.js:83
    Ember 4
    invoke backburner.js:338
    flush backburner.js:229
    flush backburner.js:426
    _end backburner.js:960
    end backburner.js:710
    _run backburner.js:1015
    _join backburner.js:989
    join backburner.js:760
    Ember 2
    jQuery 12