"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो में HTML टेम्प्लेट में नेस्टेड स्ट्रक्चर फ़ील्ड्स तक कैसे पहुंचें?

गो में HTML टेम्प्लेट में नेस्टेड स्ट्रक्चर फ़ील्ड्स तक कैसे पहुंचें?

2024-11-17 को प्रकाशित
ब्राउज़ करें:973

How to Access Nested Struct Fields in HTML Templates in Go?

गो में HTML टेम्प्लेट्स में मैप एलिमेंट्स के स्ट्रक्चर फील्ड्स तक कैसे पहुंचें

यह आलेख 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 फ़ील्ड को सफलतापूर्वक पुनर्प्राप्त और प्रदर्शित कर सकते हैं।

    विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729726421 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
    नवीनतम ट्यूटोरियल अधिक>

    चीनी भाषा का अध्ययन करें

    अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

    Copyright© 2022 湘ICP备2022001581号-3