एक हैंडल के दायरे के बाहर एक चर पर पहुँचें। प्रत्येक लूप पर


187

मेरे पास एक handlebars.js टेम्पलेट है, बस इस तरह:

{{externalValue}}

<select name="test">
    {{#each myCollection}}
       <option value="{{id}}">{{title}} {{externalValue}}</option>
    {{/each}}
</select>

और यह उत्पन्न आउटपुट है:

myExternalValue

<select name="test">
       <option value="1">First element </option>
       <option value="2">Second element </option>
       <option value="3">Third element </option>
</select>

जैसा कि अपेक्षित था, मैं idऔर एक्सेस कर सकता हूंtitlemyCollection अपने चयन को उत्पन्न करने के लिए प्रत्येक तत्व के क्षेत्रों क्षेत्रों हूं। और चयन के बाहर, मेरा externalValueचर सही ढंग से मुद्रित होता है ("myExternalValue")।

दुर्भाग्य से, विकल्पों के ग्रंथों में, externalValueमूल्य कभी भी मुद्रित नहीं होता है।

मेरा सवाल यह है: मैं लूप के भीतर से प्रत्येक के हैंडलबार्स के दायरे के बाहर एक चर का उपयोग कैसे कर सकता हूं?

जवाबों:


453

प्रयत्न

<option value="{{id}}">{{title}} {{../externalValue}}</option>

../पथ सेगमेंट माता पिता टेम्पलेट गुंजाइश होना चाहिए कि तुम क्या चाहते संदर्भ देता है।


10
अगर भविष्य के पाठकों को अभी भी मेरी तरह परेशानी हो रही है, तो इस उत्तर के लिए टिप्पणी पर एक नज़र डालें । उस एक को देखने का यह उत्तर देखने के बाद मुझे कुछ समय लगा। आपको ../मान के अनुसार कितने स्कोप हैं, इसके आधार पर आपको बार-बार उपयोग करने की आवश्यकता हो सकती है ।
bcmcfc

10
क्या मैं पागल हूं या इस प्रकार की बहुमूल्य जानकारी कहीं से भी हैंडलबार डॉक्स पर नहीं मिलती है ???
जेसी

1
@spliter एम्बर हैंडलबार पर काम करेगा .. ऐसा लगता है कि काम नहीं कर रहा है
kweku360

1
कोई विचार नहीं @ kweku360। यह सामान्य हलेबार के लिए काम करता है। हो सकता है कि एम्बर हैंडलबार्स के अनुकूलित संस्करण का उपयोग कर रहा हो जहां यह कार्यक्षमता किसी अन्य माध्यम से लागू की गई हो
स्प्लिटर

1
शुक्रिया यार, यह फाउंडेशन 6 पैनी के साथ भी पूरी तरह से काम करता है
मार्को

13

या आप इस तरह से पूर्ण पथ का उपयोग कर सकते हैं:

<option value="{{id}}">{{title}} {{@root.user.path.to.externalValue}}</option>

1

मैंने इस विषय के दस्तावेज़ीकरण के लिए 404 के साथ कई लिंक देखे।

मैं इसे इस एक के साथ अद्यतन करता हूं, यह 1 अप्रैल 2020 में काम कर रहा है :

https://handlebarsjs.com/guide/expressions.html#path-expressions

कुछ सहायक जैसे #with और #each आपको नेस्टेड ऑब्जेक्ट्स में गोता लगाने की अनुमति देते हैं। जब आप अपने पथ में ../ सेगमेंट शामिल करते हैं, तो हैंडलबार्स मूल संदर्भ में वापस बदल जाएंगे।

    {{#each people}}
    {{../prefix}} {{firstname}} 
    {{/each}}

भले ही नाम किसी टिप्पणी के संदर्भ में मुद्रित किया गया हो, फिर भी यह उपसर्ग को पुनः प्राप्त करने के लिए मुख्य संदर्भ (मूल-वस्तु) पर वापस जा सकता है।

चेतावनी

सटीक मान जो ../ ब्लॉक को कॉल करने वाले सहायक के आधार पर अलग-अलग करने का संकल्प करेगा। जब संदर्भ बदलता है तो केवल उपयोग करना आवश्यक होता है। सहायकों के बच्चों जैसे कि {{#each}} के लिए ../ के उपयोग की आवश्यकता होगी, जबकि {{#if}} जैसे सहायकों के बच्चों को नहीं।

{{permalink}}
{{#each comments}}
  {{../permalink}}

  {{#if title}}
    {{../permalink}}
  {{/if}}
{{/each}}

इस उदाहरण में उपरोक्त सभी संदर्भ समान उपसर्ग मान हैं, भले ही वे विभिन्न ब्लॉकों के भीतर स्थित हों। यह व्यवहार हैंडलबार्स 4 के रूप में नया है, रिलीज नोट्स पूर्व व्यवहार के साथ-साथ माइग्रेशन योजना पर चर्चा करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.