উত্তর:
আপনি এটি এইভাবে করতে পারেন ...
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) অনুরূপ কিছু।
আজ সকালে আমার একই সমস্যা ছিল এবং আমি একটি অল্প পরীক্ষার পরে আবিষ্কার করেছি আপনি একটি অ্যারের বর্তমান উপাদানটি উল্লেখ করতে {{।} Use ব্যবহার করতে পারেন:
<ul>
{{#yourList}}
<li>{{.}}</li>
{{/yourList}}
</ul>
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
Mustache.render('<ul>{{#.}}{{.}}{{/.}}</ul>', {yourList: ['foo','bar','baz']});
@ ডানজর্ডানের উত্তরে বিল্ডিং করা, এটি আপনি যা চান তা করবে:
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']);