यह आलेख html/ का उपयोग करके HTML टेम्प्लेट्स के भीतर मैप एलिमेंट्स से स्ट्रक्चर फील्ड्स को पुनः प्राप्त करने के मुद्दे को संबोधित करता है। गो में टेम्पलेट पैकेज।
निम्न कार्य संरचना पर विचार करें:
type Task struct {
Cmd string
Args []string
Desc string
}
इसके अलावा, एक मानचित्र को मानों के रूप में कार्य संरचनाओं और कुंजियों के रूप में स्ट्रिंग्स के साथ प्रारंभ किया जाता है:
var taskMap = map[string]Task{
"find": Task{
Cmd: "find",
Args: []string{"/tmp/"},
Desc: "find files in /tmp dir",
},
"grep": Task{
Cmd: "grep",
Args:[]string{"foo","/tmp/*", "-R"},
Desc: "grep files match having foo",
},
}
अब, आइए मौजूदा मुद्दे की जांच करें। HTML पृष्ठ को पार्स करने के लिए एक टेम्पलेट का उपयोग किया जा रहा है:
func listHandle(w http.ResponseWriter, r *http.Request){
t, _ := template.ParseFiles("index.tmpl")
t.Execute(w, taskMap)
}
निम्न कोड स्निपेट Index.tmpl टेम्पलेट का प्रतिनिधित्व करता है:
{{range $key, $value := .}}
Task Name: {{$key}}
Task Value: {{$value}}
Task description: {{$value.Desc}}
{{end}}
यह दृष्टिकोण मानचित्र की कुंजियों और मानों को सफलतापूर्वक आउटपुट करता है, लेकिन टेम्पलेट के भीतर कार्य फ़ील्ड तक पहुंचने का प्रयास करता है, उदाहरण के लिए {{$value.Desc}} का उपयोग करके, जिसके परिणामस्वरूप त्रुटियां होती हैं।
समाधान उन फ़ील्ड को निर्यात करने में निहित है जिन्हें आप टेम्प्लेट के भीतर एक्सेस करना चाहते हैं। इसे फ़ील्ड नामों के पहले अक्षर को बड़ा करके प्राप्त किया जा सकता है:
type Task struct {
Cmd string
Args []string
Desc string
}
नतीजतन, टेम्पलेट के भीतर फ़ील्ड नामों के संदर्भ को भी बड़े अक्षरों में लिखा जाना चाहिए:
{{range $key, $value := .}}
Task Name: {{$key}}
Task Value: {{$value}}
Task description: {{$value.Desc}}
{{end}}
इन चरणों का पालन करके, आप टेम्पलेट में प्रत्येक कार्य के Desc फ़ील्ड को सफलतापूर्वक पुनर्प्राप्त और प्रदर्शित कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3