在Mustache中,是否有一种方法可以检查列表是否有项目,但不重复它



我希望能够检查列表是否为空,如果不是打印块,但我不想为每个项目重复该块。我只希望它能回滚一次。

给出如下结构:

array(
    "teasers" => array(
        array("title"=>"Teaser Title 1"),
        array("title"=>"Teaser Title 2")
    )
);

{{# teasers }}
    <div class="items-wrap">
        <div class="items">
            {{# . }}
                <div class="item">
                    {{ title }}
                </div>
            {{/ . }}
           </div>
    </div>
{{/ teasers }}

我希望items-wrapdiv只打印一次,并为数组中的每个项目重复itemdiv。就像现在一样,items-wrap对teasers数组中的每个项重复一次。所以…是否有一种方法来检查主数组是否为空,但不重复它?

目标是只打印项——如果需要,将换行一次。

是的,有一个方法。Mustache的方法是length。如果等于0,则为false,则不会渲染该块。你的例子:

{{# teasers.length }}
<div class="items-wrap">
    <div class="items">
        {{# teasers }}
            <div class="item">
                {{ title }}
            </div>
        {{/ teasers }}
    </div>
</div>
{{/ teasers.length }}

标签{{teasers.length}}将检查{{teasers}}内的项目数量,并仅在不为空时呈现块。

更多信息请点击此处。

这个答案太迟了,但我希望它能帮助到一些人。

对于PHP:

{{# myArray.0}}, {{/myArray.0}}

https://stackoverflow.com/a/23786928/5546916

user "_has_item ",例如:myarray_has_items将检查array是否为空,那么标签将不呈现

或者您可以使用{{#项。Length}}在渲染前检查长度

{{#items.length}}
<ul>
    {{items}}
      <li>{{name}}</li>
    {{/items}}`enter code here`
</ul>

{{/items.length}}

相关内容

最新更新