Handlebars में {{#each}}
आप यात्रा नंबर या ऐसा कुछ के लिए पहुँच ताकि आप इसे अपने टेम्पलेट और डेटा में फेरबदल बिना नहीं कर सकते एक छोटा सा नहीं देता अपने डेटा के लिए:
var tmpl = Handlebars.compile($('#t').html());
var html = tmpl([
{ value: 'val 1', sel: true },
{ value: 'val 2', sel: false },
{ value: 'val 3', sel: false }
]);
डेमो: http://jsfiddle.net/ambiguous/27Ywu/
आप निश्चित रूप से सिर्फसेट कर सकते हैं अपने डेटा सरणी के पहले तत्व पर:
data = [ ... ];
data[0].sel = true;
var html = tmpl(data);
डेमो: http://jsfiddle.net/ambiguous/yA5WL/
वैकल्पिक रूप से, पहले एक जांच करने के लिए jQuery का उपयोग आप HTML है के बाद:
// Add the HTML to the DOM...
$('form input:first').prop('checked', true); // Or whatever selector matches your HTML
डेमो: http://jsfiddle.net/ambiguous/sPV9D/
हैंडलबार्स के नए संस्करण give you access to the index:
जब each
में आइटम के माध्यम से पाशन, आप वैकल्पिक वर्तमान पाश सूचकांक के माध्यम से {{@index}}
{{#each array}}
{{@index}}: {{this}}
{{/each}}
संदर्भित कर सकते हैं वस्तु यात्रा के लिए, बजाय {{@key}}
का उपयोग करें:
{{#each object}}
{{@key}}: {{this}}
{{/each}}
तो , यदि आप नवीनतम हैंडलबार्स का उपयोग कर रहे हैं, तो आप वें का उपयोग कर कुछ खास कर सकते हैं ई तथ्य यह है कि:
- पहला
@index
शून्य होगा।
- शून्य एक बूलियन संदर्भ में झूठा है।
आप यह कर देता है कि
:
{{#each this}}
<input type="radio" value="{{value}}" {{#unless @index}}checked="checked"{{/unless}} />
{{/each}}
डेमो: http://jsfiddle.net/ambiguous/PHKps/1/
बेशक
, किसी भी अन्य सूचकांक चुनने कठिन है और आप छोड़ देता है या तो इनपुट डेटा को संशोधित (पहले की तरह) या जोड़ने कुछ प्रकार के {{#if_eq}}
कस्टम सहायक।
आप इसे जावास्क्रिप्ट कोड से प्रस्तुत करना चाहते हैं? –
मैंने सोचा कि इससे मदद मिलेगी: http://stackoverflow.com/questions/26066768/how-to-set-the-selected-item-in-a-radio-button-group-in-handlebars- टेम्पलेट, ब्लॉक का उपयोग करके सहायक। – zx1986