वेब अनुप्रयोगों में जटिल लेआउट के साथ काम करते समय, बेस टेम्प्लेट बनाना अक्सर उपयोगी होता है जो अन्य के लिए आधार के रूप में कार्य करता है पन्ने. गो के html/टेम्पलेट पैकेज में, इसे {{define}} और {{template}} निर्देशों का उपयोग करके प्राप्त किया जा सकता है।
निम्नलिखित उदाहरण पर विचार करें जहां आपके पास एक बेस लेआउट फ़ाइल (base.html) है:
header... {{template "content" .}} footer...
और अलग पेज (पेज1.एचटीएमएल और पेज2.एचटीएमएल) जो अपने स्वयं के कस्टम कंटेंट के साथ इस बेस लेआउट का पुन: उपयोग करते हैं:
{{define "content"}}{{end}} {{template "base.html"}}Page1
{{define "content"}}{{end}} {{template "base.html"}}Page2
आप जिस समस्या का सामना कर रहे हैं वह यह है कि पेज 1 और पेज 2 दोनों रेंडरिंग के लिए एक ही HTML का उपयोग कर रहे हैं, जिसे पेज2.एचटीएमएल में परिभाषित किया गया है। इसे संबोधित करने के लिए, हमें यह सुनिश्चित करने की आवश्यकता है कि दोनों पृष्ठ {{टेम्पलेट}} ब्लॉक के भीतर अपने स्वयं के अद्वितीय सामग्री अनुभागों की घोषणा करें और उनका उपयोग करें।
एक बेहतर तरीका टेम्पलेट सामग्री को अलग-अलग फ़ाइलों में परिभाषित करना है, जैसा कि दिखाया गया है नीचे:
base.html:
{{define "base"}} header... {{template "content" .}} footer... {{end}}
page1.html:
{{define "content"}} I'm page 1 {{end}}
page2.html:
{{define "content"}} I'm page 2 {{end}}
अपने एप्लिकेशन में, आप template.New() और ParseFiles() का उपयोग करके सामग्री और बेस टेम्पलेट फ़ाइलों को टेम्पलेट ऑब्जेक्ट में पार्स कर सकते हैं। इसके बाद, आप ExecuteTemplate().
tmpl, err := template.New("").ParseFiles("page1.html", "base.html") // check your err err = tmpl.ExecuteTemplate(w, "base", yourContext)
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3