2012-11-05 48 views
5

मैं MopaBootstrapBundle उपयोग कर रहा हूँ खाली करने के लिए ओवरराइड नहीं कर सकते। यह बंडल base.html.twig है जो स्क्रिप्ट ब्लॉक शामिल हैं टेम्पलेट:विस्तारित टहनी टेम्पलेट ब्लॉक <em>टहनी</em> टेम्पलेट के साथ <em>Symfony 2.1.3</em> में

{% block foot_script %} 
    {# To only use a subset or add more js overwrite and copy paste this block 
    To speed up page loads save a copy of jQuery in your project and override this block to include the correct path 
    Otherwise the regeneration is done on every load in dev more with use_controller: true 
    #} 
    {% javascripts 
     'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-transition.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-modal.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-dropdown.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-scrollspy.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-tab.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-tooltip.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-popover.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-alert.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-button.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-collapse.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-carousel.js' 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-typeahead.js' 
     '@MopaBootstrapBundle/Resources/public/js/mopabootstrap-collection.js' 
     '@MopaBootstrapBundle/Resources/public/js/mopabootstrap-subnav.js' 
    %} 
<script type="text/javascript" src="{{ asset_url }}"></script> 
{% endjavascripts %} 
{% endblock foot_script %} 

मैं का उपयोग कर मेरे टेम्पलेट में यह विस्तार कर रहा हूँ:

{% extends 'MopaBootstrapBundle::base.html.twig' %} 
{% block foot_script %}{% endblock foot_script %} 

लेकिन यह अभी भी बंडल के आधार लोड करने के लिए कोशिश करता है .html.twig टेम्पलेट और मुझे मिलता है:

एक संकलन के दौरान एक अपवाद फेंक दिया गया है टेम्पलेट ("फ़ाइल " @ मोपाबुस्ट्रैपबंडल/संसाधन/बूटस्ट्रैप/जेएस/बूटस्ट्रैप-ट्रांजिशन.जेएस "खोजने में असमर्थ"। " " मोपाबूटस्ट्रैन्डबंडल :: base.html.twig "में।


क्या मैं बाहर है मिल गया है, कि यदि आप इसे इस तरह का विस्तार:

{% extends 'MopaBootstrapBundle::base.html.twig' %} 
{% block foot_script %} 
    {% javascripts 
     '@MopaBootstrapBundle/Resources/bootstrap/js/bootstrap-typeahead.js' 
     '@MopaBootstrapBundle/Resources/public/js/mopabootstrap-collection.js' 
     '@MopaBootstrapBundle/Resources/public/js/mopabootstrap-subnav.js' 
    %} 
<script type="text/javascript" src="{{ asset_url }}"></script> 
{% endjavascripts %} 
{% endblock foot_script %} 

नोट typeahead.js

मैं:

टेम्पलेट 01 के संकलन के दौरान एक अपवाद फेंक दिया गया है("फ़ाइल " @ मोपाबूटस्ट्रैपबंडल/संसाधन/बूटस्ट्रैप/जेएस/बूटस्ट्रैप-टाइपहेड.जेएस "खोजने में असमर्थ"। " " मोपाबूटस्ट्रैन्डबंडल :: base.html.twig "में।

अगर मैं केवल एक पंक्ति को हटा दें:

{% extends 'MopaBootstrapBundle::base.html.twig' %} 
{% block foot_script %} 
    {% javascripts 
     '@MopaBootstrapBundle/Resources/public/js/mopabootstrap-collection.js' 
     '@MopaBootstrapBundle/Resources/public/js/mopabootstrap-subnav.js' 
    %} 
<script type="text/javascript" src="{{ asset_url }}"></script> 
{% endjavascripts %} 
{% endblock foot_script %} 

मैं:

एक अपवाद एक टेम्पलेट ("फ़ाइल ढूंढने में अक्षम" के संकलन के दौरान दिया गया है @ MopaBootstrapBundle/संसाधन/बूटस्ट्रैप/जेएस/बूटस्ट्रैप-transition.js "।") "MopaBootstrapBundle :: base.html.twig" में।

यह अभी भी आधार टेम्पलेट से सभी स्क्रिप लोड करने का प्रयास करता है।

कोई सुझाव है कि * foot_script * ब्लॉक को खाली करने के लिए कैसे करें और इन जेएस फ़ाइलों को लोड न करें?

+0

मुझे लगता है कि समस्या यह है कि पहले '{% जावास्क्रिप्ट%} 'टैग पार्स किया गया था और उसके बाद' {% block%}' टैग। मुझे नहीं पता कि आप इसे कैसे ठीक कर सकते हैं। [Fabpot द्वारा यह मुद्दा] (https://github.com/symfony/symfony-docs/issues/752) शायद आपकी मदद कर सकता है? –

+0

मुझे यह भी नहीं पता कि यह एक समाधान है (मुझे ऐसा नहीं लगता), लेकिन अगर उस बूटस्ट्रैप निर्देशिका में फ़ाइलें पाई जाती हैं, तो यह अपेक्षित के रूप में काम करती है। – CRONUS

+0

एक त्वरित फिक्स के रूप में, शायद आपके बंडल से कुछ डमी खाली जेएस फ़ाइल लोड करें: {% विस्तारित करता है 'मोपाबूटस्ट्रैपबंडल :: base.html.twig'%} {% ब्लॉक foot_script%} {% जावास्क्रिप्ट '@ माइबंडल/संसाधन /public/js/dummy-file.js'%} {% endblock foot_script%} – olegkhuss

उत्तर

1

तुम क्या चाहते को एम्बेडMopaBootstrapBundle::base.html.twig बजाय यह विस्तार है।टहनी के दस्तावेज़ से

{% embed 'MopaBootstrapBundle::base.html.twig' %} 
    {% block foot_script %}{% endblock foot_script %} 
{% endembed %} 

:: आप टहनी के embed टैग का उपयोग करना चाहिए

एम्बेड टैग व्यवहार को जोड़ती शामिल की और फैली हुई है। यह आपको एक और टेम्पलेट की सामग्री को शामिल करने की अनुमति देता है, जैसा कि करता है। लेकिन यह आपको टेम्पलेट को विस्तारित करते समय, शामिल टेम्पलेट के अंदर परिभाषित किसी भी ब्लॉक को ओवरराइड करने की अनुमति देता है।

+0

यह काम नहीं करता है (कम से कम सिम्फनी 2.3 में) – Matt

+1

निश्चित रूप से, यह सिम्फनी 2.3 – rabudde

+0

में काम करता है एम्बेड टैग Twig में जोड़ा गया था 1.8। – tom10271