गो के एचटीएमएल/टेम्पलेट पैकेज में ग्लोबल वेरिएबल बनाते समय, स्कोप सीमाओं को समझना महत्वपूर्ण है। पैकेज दस्तावेज़ीकरण के अनुसार, टेम्प्लेट में परिभाषित वेरिएबल्स का एक सीमित दायरा होता है जो नियंत्रण संरचना के अंत तक विस्तारित होता है (उदाहरण के लिए, यदि, साथ, सीमा) जिसमें उन्हें घोषित किया जाता है।
निम्नलिखित HTML/टेम्पलेट कोड पर विचार करें:
{{if .UserData}} {{$currentUserId := .UserData.UserId}} [<a href="#ask_question">Inside {{$currentUserId}}</a>] {{else}} {{$currentUserId := 0}} {{end}} [<a href="#ask_question">outside {{$currentUserId}}</a>]
इस कोड का लक्ष्य वर्तमान उपयोगकर्ता आईडी को if ब्लॉक के अंदर और 0 को ब्लॉक के बाहर प्रदर्शित करना है। हालाँकि, $currentUserId के सीमित दायरे के कारण परिणाम दोनों स्थानों पर 0 दिखाता है।
Go 1.11 ने टेम्पलेट वैरिएबल मानों को संशोधित करने के लिए समर्थन पेश किया। किसी वेरिएबल को प्रारंभ करने के लिए, := का उपयोग करें, जैसे:
{{$currentUserId := 0}}
इसके मान को अपडेट करने के लिए, = का उपयोग करें, जैसे:
{{$currentUserId = .UserData.UserId}}
if ब्लॉक के बाहर परिभाषित एक वेरिएबल को संशोधित करके, परिवर्तन को दोनों तक पहुँचा जा सकता है ब्लॉक के अंदर और बाहर। एक कस्टम फ़ंक्शन पंजीकृत करें जो एक वेरिएबल स्वीकार करता है और उसे एक मान निर्दिष्ट करता है। समान प्रभाव प्राप्त करने के लिए इस फ़ंक्शन को टेम्पलेट के भीतर बुलाया जा सकता है।
सिम्युलेटेड चेंजेबल वेरिएबल्स: टेम्पलेट डेटा मैप में एक वेरिएबल को परिभाषित करें और इसके मूल्य को संशोधित करने के लिए एक कस्टम फ़ंक्शन पंजीकृत करें। यह टेम्प्लेट के भीतर सिम्युलेटेड "परिवर्तनीय" वैरिएबल की अनुमति देता है। टेम्पलेट्स.
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3