जवाबों:
आप इसे इस तरह से कर सकते हैं ...
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>', ['foo','bar','baz']);
यह इस तरह की चीजों के लिए भी काम करता है ...
var obj = [{name: 'foo'}, {name: 'bar'}];
var tmp = '<ul>{{#.}}<li>{{name}}</li>{{/.}}</ul>';
Mustache.render(tmp, obj);
{{.}}
, {{1}}
या मूंछों (5) में ऐसा ही कुछ।
मुझे आज सुबह भी यही समस्या थी और थोड़े से प्रयोग के बाद मैंने पाया कि आप {{}।}} का उपयोग किसी सरणी के वर्तमान तत्व को संदर्भित करने के लिए कर सकते हैं:
<ul>
{{#yourList}}
<li>{{.}}</li>
{{/yourList}}
</ul>
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
Mustache.render('<ul>{{#.}}{{.}}{{/.}}</ul>', {yourList: ['foo','bar','baz']});
@ Danjordan के उत्तर पर निर्माण, यह वही करेगा जो आप चाहते हैं:
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
लौटने:
<ul><li>foo</li><li>bar</li><li>baz</li></ul>
{a:'foo',b:'bar',c:'baz'}
... अनाम संदर्भ कैसे करें जब वस्तुओं पर पुनरावृत्ति हो?
एक टेम्पलेट में बहुआयामी सरणी को प्रस्तुत करने के लिए निम्नलिखित उदाहरण हैं:
उदाहरण 1
'use strict';
var Mustache = require('mustache');
var view = {test: 'div content', multiple : ['foo', 'bar'], multiple_2 : ['hello', 'world']};
var template = '<div>{{test}}</div><ul>{{#multiple}}<li>{{.}}</li>{{/multiple}}</ul><ul>{{#multiple_2}}<li>{{.}}</li>{{/multiple_2}}</ul>';
var output = Mustache.render(template, view);
console.log(output);
उदाहरण 2
'use strict';
var Mustache = require('mustache');
var view = {test: 'div content', multiple : [{name: 'foo', gender: 'male'}, {name: 'bar', gender: 'female'}], multiple_2 : [{text: 'Hello', append: '**', prepend: '**'}, {text: 'World', append: '**', prepend: '**'}]};
var template = '<div>{{test}}</div><ul>{{#multiple}}<li>Hello my name is {{name}}. And I am {{gender}}</li>{{/multiple}}</ul><ul>{{#multiple_2}}<li>{{prepend}}_{{text}}_{{append}}</li>{{/multiple_2}}</ul>';
var output = Mustache.render(template, view);
console.log(output);
टेस्ट रन के लिए, 'test.js' नामक फ़ाइल में ऊपर दिए गए उदाहरणों को सहेजें, कमांडलाइन में निम्नलिखित कमांड चलाएँ
nodejs test.js
मुझे नहीं लगता कि मूंछें ऐसा कर सकती हैं! (आश्चर्यजनक रूप से) आप वस्तुओं की एक सूची पर पुनरावृति कर सकते हैं, और फिर प्रत्येक ऑब्जेक्ट की विशेषताओं तक पहुंच सकते हैं, लेकिन आप मूल्यों की एक सरल सूची पर पुनरावृति नहीं कर सकते हैं!
इसलिए, आपको अपनी सूची को इसमें बदलना होगा:
[ {"value":"foo"},{"value":"bar"},{"value":"baz"} ]
और फिर आपका टेम्पलेट होगा:
<ul>
{{#the_list}}
<li>{{value}}</li>
{{/the_list}}
</ul>
मेरे लिए, यह मूंछों के साथ एक गंभीर समस्या की तरह लगता है - किसी भी टेम्पलेट प्रणाली को सरल मूल्यों की सूची पर लूप करने में सक्षम होना चाहिए!
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);