كيف لي أن أستخدم محرك قوالب للغة javaScript دون التعارض مع Blade ؟

السلام عليكم

في بعض الأحيان تجد تضارب بين محركات القولب لإستخدامها لنفس الأنماط التي تستخدمها في ترجمة قوالها كإستخدادم الأقواس المعكوفة {} والمشهور إستخدامها في أنظمة قوالب كثيرة.

يتيح لك Laravel إستخدام محرك القوالب من عدمه من خلال تسمية ملفات القوالب كما نعلم، فمن أفضل الحلول التي إستخدمتها وضع الأجزاء المراد عدم تمريرها لمحرك القوالب Blade ضمن مجلد مخصص وليكن باسم محرك القوالب الذي تستخدمه للغة javaScript على سبيل المثال mustache ستنشئ مجلد باسم mustache داخل مجلد الـ view وتضع ملفات القوالب التي تريد إستخدامها بدون اللاحقة Blade حتى لا يترجمها محرك القوالب Blade وداخل ملفات القوالب الأساسية للموقع التي تستخدم Blade ستقوم بتضمين ملفات قوالب mustache

  • مثال على الهيكلة:

    view/
        header.balde.php
        index.blade.php
        footer.blade.php
        mustache/
                loginForm.php
                signupForm.php
    
  • طريقة التضمين عبر Blade :

    {{ View::make('mustache.loginForm') }}
    
  • في حال كانت ملفات قوالب javaScript كثيرة وتحتاج طلب ما تريد فقط عند الحاجة ستستخدم تلك الطريقة وهي عبر الـ AJAX من خلال تخصيص Route لجلب ملفات القالب كالتالي:

    Route::any('/mustache.{name}', 'MustacheController@get')->where('name','[A-Za-z0-9]+');
    

وداخل الـ MustacheController سننشئ الدالة get للتحقق من وجود الملف وجلبه

public function get($name)
{
    try
    {
        View::getFinder()->find($name);
        return View::make('mustache.'.$name);
    }
    catch (InvalidArgumentException $error)
    {
        return 'الملف غير موجود';
    }
}
  • طبعاً ستتم مناداة Route عبر AJAX لجب القالب الذي تريد إستخدامه.
يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

شكرا جزيلا


اذا اردت تتخطى اي شئ ببساطة يمكنك عمل التالي :

@{{ هنا اكتب ما تريد داخل ملف blade }}
  • كما أشرت في الأعلى هي الطريقة التي أفضلها وأراها الأنسب، أستخدمها لفصل قوالب javaScript عن Blade ويتم التضمين عند الحاجة، ففي حالة الفصل يمكنك إستخدام القوالب عبر Blade أو جلبها عبر AJAX لنفس القوالب.

  • شكراً لك لتعدد الطرح، فهذه الطريقة مناسبة في حال كان كود بسيط ولن تقوم بتكراره في مواضع أخرى.