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

1 Mi Piace

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.

6 Mi Piace

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.

3 Mi Piace

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!

4 Mi Piace