我的对象长这样:
['foo','bar','baz']
我希望使用mustache模板将其转换为如下内容:
"<ul><li>foo</li><li>bar</li><li>baz</li></ul>"
但是如何实现呢?我真的必须先将其混合成类似这样的形式吗?
{list:['foo','bar','baz']}
我的对象长这样:
['foo','bar','baz']
我希望使用mustache模板将其转换为如下内容:
"<ul><li>foo</li><li>bar</li><li>baz</li></ul>"
但是如何实现呢?我真的必须先将其混合成类似这样的形式吗?
{list:['foo','bar','baz']}
你可以像这样做...
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);
今天早上我也遇到了同样的问题,经过一番尝试,我发现可以使用{{.}}来引用数组的当前元素:
<ul>
{{#yourList}}
<li>{{.}}</li>
{{/yourList}}
</ul>
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
- Kai CarverMustache.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'}
是不可能的...在迭代对象时如何进行匿名引用? - Peter Krauss'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
一个名为Strengths
的数组的最简单解决方案:
{
"ViewModel":
{
"StrengthsItems":
{
"Strengths": ["Dedicated", "Resourceful", "Professional", "Positive"]
}
}
}
对我而言完美运行的代码如下:
{{#ViewModel.StrengthsItems}}
<p class="p4">{{Strengths}}</p>
{{/ViewModel.StrengthsItems}}
我不认为Mustache能做到这一点!(令人惊讶)你可以遍历对象列表,然后访问每个对象的属性,但似乎无法遍历简单值列表!
因此,您必须将列表转换为:
[ {"value":"foo"},{"value":"bar"},{"value":"baz"} ]
然后你的模板将是:
<ul>
{{#the_list}}
<li>{{value}}</li>
{{/the_list}}
</ul>
Mustache.render('<ul>{{#.}}<li>{{.}}</li>{{/.}}</ul>',['foo','bar','baz']);
- Kai Carver{{.}}
、{{1}}
或类似的东西。 - Daniel Lubarov