Hinzufügen einer maßgeschneiderten Rohvorlage

Hey, ich versuche, meine eigene Raw-Vorlage hinzuzufügen – nicht einfach eine bestehende zu überschreiben.

Grund: Ich möchte diese lästigen Ember-Tags loswerden, die bei verschachtelten Komponenten auftreten.

… Zunächst ging ich davon aus, dass es so einfach wäre, eine solche Vorlage einfach im Verzeichnis templates oder templates/list hinzuzufügen. Also habe ich das getan, doch sie wurde stillschweigend nicht gefunden (meine Vorlage).

Vielleicht kann ich bestätigen, dass dies nicht unterstützt wird?

Dann habe ich folgendes gefunden:

und das hier:

Also habe ich folgendes versucht:

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

<--- einige Initialisierungen -->

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

Dabei bekam ich jedoch folgende Fehlermeldung:

TypeError: Handlebars.compile ist undefiniert

Vielen Dank!

Entschuldigung, falls ich etwas falsch mache …

(Das wird übrigens super nützlich sein, also danke, dass du es implementiert hast!)

1 „Gefällt mir“

Sie sollten in der Lage sein, eine Roh-Vorlage direkt in den Templates-Ordner hinzuzufügen. Wir haben dies in discourse-docs so gehandhabt. Sie verwenden nun die Dateiendung .hbr, weshalb dort eventuell das Problem liegt.

6 „Gefällt mir“

Meinst du das umgebende

, das Ember-Komponenten standardmäßig hinzugefügt wird? Du kannst dies deaktivieren, indem du tagName auf einen leeren String setzt:

Die Arbeit mit Ember-Komponenten ist viel einfacher als mit rohen Templates, daher würde ich dir definitiv empfehlen, bei Ember zu bleiben, wenn es möglich ist.

3 „Gefällt mir“

Autsch, ich hatte meine hbr-Vorlagen in templates/components! (was offensichtlich falsch ist, wenn man es so aufschreibt)

Danke für dieses Beispiel, Justin! Ich habe es behoben, indem ich es in den templates-Ordner verschoben habe, doh!

Funktioniert jetzt!

@david ah, sehr nützlicher Tipp, danke! Ich werde das auch nutzen! Das wird es mir ermöglichen, Aktionen beizubehalten, perfekt.

Anscheinend habe ich es stark überkompliziert, cheers!

4 „Gefällt mir“