我有一个对象数组,其中一个键的值可以是true,false或null。
var a = [
{
something: true
},
{
something: false
},
{
something: null
}
];
而胡子应该以不同的方式涵盖所有这些案件。
例如,对于true,它应该打印:
<a>true</a>
对于错误:
<p>false</p>
和null:
<span>null</span>
有没有办法在Mustache中为3种不同类型的值编写if / else语句?
答案 0 :(得分:1)
一个更简单的方法是这样的:
{{#parentId}}{{.}}{{/parentId}}{{^parentId}}null{{/parentId}}
在上面的示例中,如果parentId
有值,则输出,而文本null
没有值。
答案 1 :(得分:0)
我使用过Mustache函数来解决它。您可以向将传递给Mustache.render方法的对象添加方法:
基本上你需要遍历对象来添加新方法,所以你最终得到这样的东西:
var a = [
{
something: true,
somemethod: function () {
return function (text) {
if (this.something === null) {
return "<p>" + text + "</p>";
} else if (!this.something) {
return "<a>" + text + "</a>";
} else {
return "<span>" + text + "</span>";
}
}
}
},
{
something: false,
somemethod: function () {
return function (text) {
if (this.something === null) {
return "<p>" + text + "</p>";
} else if (!this.something) {
return "<a>" + text + "</a>";
} else {
return "<span>" + text + "</span>";
}
}
}
}
];
稍后您可以在模板中使用以下内容:
{{#somemethod}}this text will be used{{/somemethod}}