إضافة قالب خام مخصص

مرحبًا، أحاول إضافة قالب Raw خاص بي… وليس مجرد تجاوز قالب موجود.

السبب: محاولة التخلص من وسوم Ember المزعجة التي تظهر عند استخدام مكونات متداخلة.

… في البداية، افترضت أن الأمر سيكون سهلاً مثل إضافة القالب إلى مجلد templates أو templates/list، لذا قمت بذلك، لكن القالب فشل بصمت (لم يتم العثور عليه).

ربما يمكنني التأكد من أن هذا غير مدعوم؟

ثم وجدت هذا:

وهذا:

لذا جربت ما يلي:

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

<---بعض إعدادات التهيئة-->

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

ولكنني حصلت على هذا الخطأ:

TypeError: Handlebars.compile is undefined

شكرًا لك!

آسف إذا كنت أفعل شيئًا خاطئًا هنا …

(سيكون هذا مفيدًا جدًا على أي حال، لذا شكرًا لك على تنفيذه!)

يجب أن تتمكن من إضافة قالب خام مباشرة إلى مجلد القوالب. لقد قمنا بذلك في discourse-docs. يستخدمون الآن امتداد ملف .hbr، لذا ربما كان ذلك هو سبب المشكلة.

هل تقصد عنصر الـ <div> الذي يتم إضافته افتراضيًا إلى مكونات الـ ember؟ يمكنك تعطيله عن طريق تعيين tagName إلى سلسلة نصية فارغة:

العمل مع مكونات الـ ember أسهل بكثير من القوالب الخام، لذا أنصحك بشدة بالالتزام بـ ember إذا كان ذلك ممكنًا.

يا إلهي، لقد كان قوالب hbr الخاصة بي في templates/components! (وهو أمر خاطئ بوضوح عند كتابته)

شكرًا لك على هذا المثال يا جاستن! تم إصلاحه بنقله إلى مجلد القوالب، يا إلهي!

يعمل الآن!

@دافيد، نصيحة مفيدة جدًا، شكرًا لك! سأستفيد منها أيضًا! هذا سيسمح لي بالاحتفاظ بالإجراءات، رائع.

يبدو أنني قد أعقدت الأمر بشكل كبير، شكراً لك!