تُنفَّذ السكريبتات في مكونات السمة مرة واحدة فقط؛ كيف يمكن إعادة تنفيذها عند تغيير المسار (دون إعادة تحميل الصفحة بالكامل)؟
على سبيل المثال، أريد أن تُنفَّذ السكريبتات الموجودة في المكون حتى بعد التنقل بين الوسوم.
تُنفَّذ السكريبتات في مكونات السمة مرة واحدة فقط؛ كيف يمكن إعادة تنفيذها عند تغيير المسار (دون إعادة تحميل الصفحة بالكامل)؟
على سبيل المثال، أريد أن تُنفَّذ السكريبتات الموجودة في المكون حتى بعد التنقل بين الوسوم.
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
// الكود الخاص بك
});
</script>
أين يجب أن أضع هذا إذا كنت أقوم ببناء مكون سمة؟ هذا هو كودي في الوقت الحالي. أحاول إعادة تصيير التذييل في كل مرة يتغير فيها المسار حتى يتم إعادة تنفيذ السكريبتات.
أواجه أخطاء غريبة.
أنا مبتدئ تمامًا، ولا أعرف ما إذا كانت هذه هي الطريقة الصحيحة للقيام بذلك.
initialize() {
withPluginApi("0.8", api => {
if (settings.Show_footer_on_login_required_page) {
api.modifyClass("controller:static", {
@on("init")
showFooterOnStatic() {
this.set("application.showFooter", true);
}
});
api.onPageChange(() => {
showFooterOnStatic() {
this.set("application.showFooter", true);
}
});
}
});
هل جربت البحث في الأعمال السابقة أو الكود في مكون مشابه آخر في #theme-component للحصول على بعض الأفكار حول كيفية المضي قدمًا؟
لقد نظرت في بعض منها، لكن يبدو أنها لا تحتوي على ما أحاول فعله. أعتقد أنني سأبحث في المزيد من مكونات القوالب.
شكرًا لك، @osioke، و@michaeld
، لقد وجدتُ بالضبط ما كنتُ أبحث عنه بعد المرور عبر هذا المكون للموضوع: Homepage Feature