आपको लगता है कि अन्य टेम्पलेट्स, जैसे के लिए बढ़ा दी है एक base.html
टेम्पलेट में अपनी परियोजना का आयोजन किया गया है appname/pagename.html
, आप सक्रिय नेविगेशन तत्व को हाइलाइट करने के लिए टेम्पलेट-केंद्रित दृष्टिकोण का उपयोग कर सकते हैं।
यह दृष्टिकोण आपको कुछ decoupling फायदे देता है, जो मैंने इस उत्तर के अंत में विस्तार से देखा है।
मुझे इस दृष्टिकोण को व्यापक नेविगेशन आइटम्स को संभालने के लिए बहुत उपयोगी पाया गया है जो कि अधिकांश या सभी साइट पर समान रहता है। यह शायद अधिक विस्तृत नेविगेशन तत्वों के लिए उपयुक्त समाधान नहीं है, जैसे कि आपके डेटा स्टोर से प्राप्त वस्तुओं की गतिशील सूची प्रस्तुत करना।
अपने base.html
टेम्पलेट में, प्रत्येक नेविगेशन तत्व को एक खंड जोड़ें ब्लॉक करने के लिए अद्वितीय नाम देने: अपने appname/pagename.html
टेम्पलेट में
<ul class="nav">
<li class="{% block navbar_class-home %}{% endblock %}">
<a href="#">Home</a>
</li>
<li class="{% block navbar_class-about %}{% endblock %}">
<a href="#">About</a>
</li>
<li class="{% block navbar_class-pricing %}{% endblock %}">
<a href="#">Pricing</a>
</li>
</ul>
, यदि आप सक्रिय प्रकट करने के लिए नव तत्वों में से एक चाहते हैं, ओवरराइड सामग्री के रूप में active
का उपयोग कर उचित ब्लॉक।
{% block navbar_class-about %} active {% endblock %}
जब आप एक राय यह है कि उस टेम्पलेट renders उपयोग करें, यह इस तरह से प्रस्तुत करना होगा::
<ul class="nav">
<li class="">
<a href="#">Home</a>
</li>
<li class=" active ">
<a href="#">About</a>
</li>
<li class="">
<a href="#">Pricing</a>
</li>
</ul>
यह एक प्रारंभिक प्रतिपादन है कि 'नहीं करता है प्रदान करता है उदाहरण के लिए, "संक्षिप्त विवरण" आइटम को हाइलाइट करने जावास्क्रिप्ट पर भरोसा नहीं है। (आप जावास्क्रिप्ट का उपयोग आप एक एकल पृष्ठ एप्लिकेशन कर रहे हैं जगह में नेविगेशन बार कक्षाएं संशोधित कर सकते हैं।)
कई लोगों के लिए (लेकिन सभी नहीं) के मामलों, इस दृश्य तर्क से एक बेहतर जुदाई प्रस्तुति हो सकता है:
आप साइट-नेविगेशन डेटा को टेम्पलेट संदर्भ में संलग्न करने के लिए विचारों को संशोधित कर सकते हैं, लेकिन दृढ़ता से दृश्य परत को प्रस्तुत करने वाले जोड़ों को जोड़ते हैं, और पुन: प्रयोज्य ऐप्स बनाने या तृतीय-पक्ष ऐप्स को एकीकृत करने में अधिक कठिन बनाते हैं।
दृश्य पहले से ही एक नामित टेम्पलेट का चयन कर रहा है, जिसका अर्थ है कि आप पहले ही टेम्पलेट परत पर कुछ नेविगेशन से संबंधित जानकारी पास कर रहे हैं। आपको बस इतना ही चाहिए।
आप दृश्य के बारे में कुछ जानकारी प्राप्त करने के लिए टेम्पलेट संदर्भ प्रोसेसर का उपयोग कर सकते हैं, लेकिन यह टेम्पलेट परत के भीतर रहने के बजाए, सिस्टम की दूसरी परत पर मजबूत युग्मन को स्थानांतरित करता है।
आह, यह वही है जो मैं ढूंढ रहा हूं। अस्पष्टता के लिए खेद है। संदर्भ के लिए बूटस्ट्रैप स्रोत से सिर्फ कॉपी किया गया था। मैं इसे एक शॉट दूंगा! –