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é !)

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.

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.

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 !