2012-12-03 7 views
11

में बाहरी {{#each}} संग्रह मूल्य का उपयोग कैसे करें लूप में बाहरी # प्रत्येक संग्रह मानों तक पहुंचने का मानक तरीका क्या है? उदाहरण के लिए : भीतरी संग्रह करने के लिएनेस्टेड लूप

<template name="example"> 
    {{#each outerCollection}} 
    <tr> 
    {{#each innerCollection}} 
     <td>{{aaa}}</td> 
    {{/each}} 
    </tr> 
    {{/each}} 
</template> 

Template.example.aaa = function(){ 
    // cannot access outerCollection values 
} 
Template.example.aaa ऊपर में

, this अंक।

मुझे बाहरी चयन आइटम तक पहुंचने का तरीका नहीं मिल रहा है। मेरा समाधान नीचे जैसा है, मैं अपने स्वयं के सहायक कार्य को परिभाषित कर रहा हूं। क्या यह इस उद्देश्य को प्राप्त करने के लिए एक मानक उल्का तरीका है?

<template name="example"> 
    {{#each outerCollection}} 
    <tr> 
    {{#each innerCollection}} 
     <td>{{myHelper ../outerItem innerItem}}</td> 
    {{/each}} 
    </tr> 
    {{/each}} 
</template> 

Handlebars.registerHelper('myHelper', function (outItem, inItem) { 
    // can access outerCollection via outerItem 
}); 

मुझे आंतरिक घटना हैंडलर पहुंच के मामले में similar question मिला।

+1

मुझे लगता है कि यह है। सवाल वास्तव में क्या है? –

+0

आपकी टिप्पणी के लिए धन्यवाद। मैंने यह सवाल पोस्ट किया है क्योंकि मुझे अपने कोड के लिए विश्वास नहीं है और इस उद्देश्य के लिए उल्का नमूना कोड नहीं मिल रहा है। मैं जानना चाहता हूं कि कोई और अधिक चालाक कार्यान्वयन जानता है या नहीं। – hyde

+1

यहां बेहतर तरीका है, पंजीकरण की आवश्यकता नहीं है ऊपर के रूप में हेल्पर, सिंटैक्स के बाद काम कर सकते हैं: Template.example.myHelper = function (outItem, inItem) {/ * बाहर के माध्यम से बाहरी चयन आइटम तक पहुंच सकते हैं * /}; – hyde

उत्तर

12

मुझे लगता है कि आपने इसका उत्तर दिया है! ../ का उपयोग https://github.com/meteor/meteor/wiki/Handlebars में किया गया है।

+1

लेकिन आप {{aaa}} कैसे प्राप्त करते हैं जेएस में? – kpie

1

आप बाहरी संग्रह लाने के लिए नीचे दिए गए कोड का उपयोग कर सकते हैं।

आप Collection.RechargePlan रूप Collection.Customer और बुलाया संग्रह है और आप दोनों ग्राहक को अद्यतन करने के लिए एक टेम्पलेट में उपयोग कर रहे हैं लगता है।

Customer = {"name":"James", "rechargeplan":"monthly"}; 
RechargePlan = [{"rechargeplan": "monthly"},{"rechargeplan": "yearly"}]; 

//Inside template, Bydefault Customer is available. 
{{#each RechargePlan}} 
    {{#if equals ../rechargeplan rechargeplan}} 
     //Hurray Plan matches 
    {{/if}} 
{{/each}} 

उपरोक्त कोड में, ../rechargeplan वास्तव में Customer.rechargeplan है, ../ वास्तव में, पदानुक्रम ऊपर एक कदम चला गया और उसके बाद, यदि उपलब्ध है क्षेत्र पहुँचा के बाद से ग्राहक पहले से ही टेम्पलेट के लिए उपलब्ध है यह क्षेत्र उठाया जाता है।