गो में टेम्पलेट आउटपुट कैप्चर करना
गो टेम्पलेट के भीतर, एक उप-टेम्पलेट के आउटपुट को कैप्चर करना या इसे सीधे एक वेरिएबल पर असाइन करना है डिफ़ॉल्ट रूप से समर्थित नहीं है. हालाँकि, यह एक कस्टम फ़ंक्शन को पंजीकृत करके और टेम्पलेट के परिणाम प्राप्त करने के लिए बाइट्स बफर का उपयोग करके प्राप्त किया जा सकता है।
कस्टम फ़ंक्शन पंजीकरण
टेम्पलेट आउटपुट कैप्चर करने के लिए, रजिस्टर करें Template.Funcs() वाला एक फ़ंक्शन जो टेम्प्लेट नाम को एक तर्क के रूप में लेता है और टेम्प्लेट के आउटपुट को एक स्ट्रिंग के रूप में लौटाता है:
func execTempl(name string) (string, error) { buf := &bytes.Buffer{} err := t.ExecuteTemplate(buf, name, nil) return buf.String(), err }
टेम्पलेट निष्पादन और परिणाम कैप्चर
Template.ExecuteTemplate() का उपयोग करके 'my-template' नामक उप-टेम्पलेट निष्पादित करें और इसे एक वेरिएबल पर असाइन करें:
{{$var := execTempl "my-template"}}
आउटपुट पुनर्प्राप्ति
कैप्चर किए गए आउटपुट को पुनः प्राप्त करें और आवश्यकतानुसार इसका उपयोग करें:
See result: {{$var}}
पूर्ण उदाहरण
var t *template.Template func main() { t = template.Must(template.New("").Funcs(template.FuncMap{ "execTempl": execTempl, }).Parse(tmpl)) if err := t.Execute(os.Stdout, nil); err != nil { panic(err) } } const tmpl = ` {{define "my-template"}}my-template content{{end}} See result: {{$var := execTempl "my-template"}} {{$var}} `
आउटपुट:
See result: my-template content
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3