Aggiunta di un modello raw su misura

Ehi, sto cercando di aggiungere il mio stesso template Raw… non semplicemente sovrascrivere uno esistente.

Motivo: sto cercando di liberarmi di quei fastidiosi tag ember che si ottengono usando componenti annidati.

… inizialmente ho pensato che sarebbe stato semplice aggiungere uno alla directory templates o templates/list, quindi ho proceduto, ma ha fallito silenziosamente (non ha trovato il mio template).

Forse posso confermare che questo non è supportato?

Poi ho trovato questo:

e questo:

Quindi ho provato così:

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

<---qualche inizializzazione-->

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

Ma ho ottenuto questo:

TypeError: Handlebars.compile è undefined

Grazie!

Scusa se sto facendo qualcosa di sbagliato…

(questo sarà super utile, btw, quindi grazie per averlo implementato!)

Dovresti essere in grado di aggiungere un template raw direttamente alla cartella dei template. L’abbiamo fatto in discourse-docs. Ora usano l’estensione di file .hbr, quindi forse è lì che si è verificato l’errore.

Intendi il div di avvolgimento che viene aggiunto di default ai componenti Ember? Puoi disabilitarlo impostando tagName su una stringa vuota:

Lavorare con i componenti Ember è molto più semplice rispetto ai template raw, quindi ti consiglio vivamente di rimanere su Ember se possibile.

Gah, avevo i miei template hbr in templates/components! (il che è ovviamente sbagliato quando lo scrivi così)

Grazie per quell’esempio, Justin! L’ho risolto spostandolo nella cartella templates, che idiota!

Funziona ora!

@david, ottimo consiglio, grazie! Lo userò anch’io! Mi permetterà di mantenere le azioni, perfetto.

Sembra che l’avessi complicato enormemente, grazie mille!