Ajout d'un modèle brut sur mesure

Salut, j’essaie d’ajouter mon propre modèle Raw… pas simplement de remplacer un modèle existant.

Raison : essayer de me débarrasser de ces maudites balises Ember que l’on obtient lors de l’utilisation de composants imbriqués.

… au début, j’ai supposé que ce serait aussi simple que d’en ajouter un dans le répertoire templates ou templates/list, alors je l’ai fait, mais cela a échoué silencieusement (il n’a pas trouvé mon modèle).

Peut-être que je peux confirmer que cela n’est pas pris en charge ?

Ensuite, j’ai trouvé ceci :

et ceci :

Alors j’ai essayé ceci :

import { addRawTemplate } from "discourse-common/lib/raw-templates";
import { compile } from "handlebars";

<--- quelques initialisations -->

addRawTemplate('search-result-entry',  compile(`<span class='result-lala'>hello</span>`));

Pour obtenir cela :

TypeError: Handlebars.compile est undefined

Merci !

Désolé si je fais quelque chose de mal ici…

(Cela va être super utile, d’ailleurs, alors merci de l’avoir implémenté !)

1 « J'aime »

Vous devriez pouvoir ajouter un modèle brut directement dans le dossier des modèles. Nous l’avons fait dans discourse-docs. Ils utilisent désormais l’extension de fichier .hbr, donc c’est peut-être là que le problème s’est produit.

6 « J'aime »

Vous voulez dire la balise <div> englobante qui est ajoutée par défaut aux composants Ember ? Vous pouvez la désactiver en définissant tagName sur une chaîne vide :

Travailler avec les composants Ember est bien plus facile qu’avec des templates bruts, donc je recommande vivement de rester sur Ember si vous le pouvez.

3 « J'aime »

Gah, j’avais mes modèles hbr dans templates/components ! (ce qui est évidemment faux quand on l’écrit ainsi)

Merci pour cet exemple, Justin ! Je l’ai corrigé en déplaçant cela vers le dossier templates, oh là là !

Ça marche maintenant !

@david ah, très astuce utile, merci ! Je vais aussi en profiter ! Cela me permettra de conserver les actions, parfait.

Il semble que je l’ai considérablement surcomplicé, merci !

4 « J'aime »