2012-01-22 11 views
6

के बजाय डिस्प्ले कुंजी मैं इस डेटा का उपयोग यहां कर रहा हूं: http://pastie.org/3231052 - मूंछ या हैंडलबार्स का उपयोग करके मूल्य के बजाय मैं कुंजी कैसे प्रदर्शित कर सकता हूं?Mustache.js - मूल्य

[{"interval":"2012-01-21", 
    "advertiser":"Advertisers 1", 
    "offer":"Life Insurance", 
    "cost_type":"CPA", 
    "revenue_type":"CPA", 
    ... etc ... 
}] 
+0

तुम्हारा मतलब है कि आप प्रत्येक आइटम पर पाश चाहते है ध्यान दें कि यह कार्यान्वयन पर निर्भर करता है और Handlebars कुंजी-मान जोड़ों प्रदर्शित? –

+0

हाँ, तो कुंजी एक्स की मात्रा के लिए में होगी। फिर में मूल्य कितने पंक्तियों के बावजूद है। संघर्ष कर रहे थे। पूरे – Coughlin

+0

में jQuery का उपयोग करना हैंडलबार्स के नए संस्करणों में इसे डिफ़ॉल्ट रूप से संभाला जाता है: http://stackoverflow.com/questions/11884960/how-to-get-index-in-handlebars-each-helper – fuzzyvagina

उत्तर

1

यदि आप कुंजी-मूल्य जोड़े प्रदर्शित करना चाहते हैं, तो आप हैंडलबार में एक सहायक लिख सकते हैं।

Handlebars.registerHelper('eachkeys', function(context, options) { 
 
    var fn = options.fn, inverse = options.inverse; 
 
    var ret = ""; 
 

 
    var empty = true; 
 
    for (key in context) { empty = false; break; } 
 

 
    if (!empty) { 
 
    for (key in context) { 
 
     ret = ret + fn({ 'key': key, 'value': context[key]}); 
 
    } 
 
    } else { 
 
    ret = inverse(this); 
 
    } 
 
    return ret; 
 
}); 
 

 
$(function() { 
 
    var data = {"interval":"2012-01-21", 
 
     "advertiser":"Advertisers 1", 
 
     "offer":"Life Insurance", 
 
     "cost_type":"CPA", 
 
     "revenue_type":"CPA"}; 
 
       
 
    var source = $("#template").html(); 
 
    var template = Handlebars.compile(source); 
 
    $('#content').html(template({'data': data})); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0.beta2/handlebars.min.js"></script> 
 
<script id="template" type="text/x-handlebars-template"> 
 
    {{#eachkeys data}} 
 
    <li>{{this.key}} - {{this.value}}</li> 
 
    {{/eachkeys}} 
 
</script> 
 
<div id="content"> 
 
</div>

संपादित

लगता है की तरह यह काफी आप क्या चाहते हैं नहीं है, लेकिन यह एक सहायक है कि चाल करना होगा साथ आने के लिए संभव है।

+0

मुझे लगता है कि यह बहुत समान है वे कुंजी में में स्ट्रिंग में लौटाए गए एक्स की मात्रा के लिए कुंजी है? क्या वह काम करता है? – Coughlin

+0

कुंजी – Coughlin

+0

के आधार पर उपयुक्त कॉलम में में मान यह डेटा से उत्पन्न करना चाहते हैं, HTML के उदाहरण को देखने में मदद करेगा। क्या डेटा ऑब्जेक्ट्स की सरणी है? (यह अस्पष्ट है, क्योंकि केवल एक सरणी तत्व दिया गया है।) यदि ऐसा है, तो आप हेडर बनाने के लिए पहले तत्व में सरणी कुंजियों पर लूप कर सकते हैं और फिर (मानते हैं कि कॉलम पूरे डेटा में समान हैं), पंक्तियों को पॉप्युलेट करें प्रत्येक आइटम के लिए। –

1

मैंने ऑब्जेक्ट कुंजी मूल्य जोड़ी को संभालने के लिए हैंडलबार का उपयोग करके पिछली प्रतिक्रिया में संशोधन किया। यह केवल निम्न कार्य करने जैसा आसान है:

<script id="template" type="text/x-handlebars-template"> 
    {{@entries}} 
    <li>{{KEY}} - {{VALUE}}</li> 
    {{/entries}} 
</script> 
<div id="content"> 
</div> 

मैंने फिडल पर एक उदाहरण दिया, उम्मीद है कि इससे किसी को वहां मदद मिलेगी। कृपया

Mustache Attribute addition.

+1

यह मूंछ नहीं है – Tebe

+0

क्या आप अधिक विशिष्ट हो सकते हैं, मुझे लगता है कि आपको –

+0

के लिंक को नहीं देखा गया था, मुझे एक त्वरित रूप से देखा गया था, आप इसे हैंडलबार्स के रूप में कहते हैं, मूंछ के रूप में नहीं। एक अलग पुस्तकालय होना चाहिए, या? – Tebe