Mustache-根据数组数据有条件地渲染列表



我有一个现有的应用程序,它使用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标签:你已经有了答案

最新更新