我有一个现有的应用程序,它使用Mustache.js进行模板化,我需要有条件地从来自服务器的数组数据(json)中呈现一个列表。Mustache有可能做到这一点吗?
一些示例数据:
"Preferences": ["pref-red", "pref-blue"]
很容易通过输出
<ul class="plain">
{{#Preferences}}
<li>{{.}}</li>
{{/Preferences}}
</ul>
但我真正想做的是根据返回的任何偏好数据,有条件地呈现静态列表的适当部分。一些非常愚蠢的伪代码:
<ul class="plain">
{{#Preferences}}
{{if pref-red}}<li class="icon red bell">Red</li>{{/if}}
{{if pref-green}}<li class="icon green car">Green</li>{{/if}}
{{if pref-blue}}<li class="icon blue cat">Blue</li>{{/if}}
{{if pref-yellow}}<li class="icon yellow flower">Yellow</li>{{/if}}
{{if pref-purple}}<li class="icon purple house">Purple</li>{{/if}}
{{/Preferences}}
</ul>
在这种情况下,它将在浏览器中输出为:
<ul class="plain">
<li class="icon red bell">Red</li>
<li class="icon blue cat">Blue</li>
</ul>
我知道Mustache没有if条件,但这能在Mustache实现吗?如果可能的话,我想把它留给Mustache(减少、重复使用、回收)。
不,Mustache不能用你的原始数据来实现它。
您的两个选项:
- 转换输入数据,使其可以由Mustache渲染
- 更改渲染引擎。你已经在你的问题上添加了handlers.js标签:你已经有了答案