Adicionando um template raw personalizado

Ei, estou tentando adicionar meu próprio modelo Raw… não apenas sobrescrever um existente.

Motivo: estou tentando me livrar daquelas tags Ember desagradáveis que aparecem ao usar componentes aninhados.

… inicialmente, achei que seria tão simples quanto adicionar um ao diretório templates ou templates/list, então fiz isso, mas ele falhou silenciosamente (não encontrou meu modelo).

Talvez eu possa confirmar que isso não é suportado?

Depois, encontrei isso:

e isso:

Então, tentei o seguinte:

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

<---algumas configurações iniciais-->

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

Mas obtive isso:

TypeError: Handlebars.compile is undefined

Obrigado!

Peço desculpas se estou fazendo algo errado aqui…

(isso vai ser super útil, btw, então obrigado por implementá-lo!)

Você deve conseguir adicionar um modelo bruto diretamente à pasta de modelos. Fizemos isso no discourse-docs. Eles agora usam a extensão de arquivo .hbr, então talvez seja aí que algo tenha dado errado.

Você quer dizer a tag <div> que é adicionada aos componentes Ember por padrão? Você pode desativá-la definindo tagName como uma string vazia:

Trabalhar com componentes Ember é muito mais fácil do que com templates brutos, então eu definitivamente recomendo continuar usando Ember se possível.

Ah, eu tinha meus templates do hbr em templates/components! (o que é obviamente errado quando se escreve isso)

Obrigado por esse exemplo, Justin! Consertei movendo para a pasta templates, que óbvio!

Está funcionando agora!

@david, ah, dica muito útil, obrigado! Vou aproveitar isso também! Isso vai me permitir manter as ações, perfeito.

Parece que eu tinha complicado demais, valeu!