在Mustache中,有没有办法检查列表中是否有项目,但不重复它?

时间:2016-09-14 15:37:21

标签: mustache.php

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

提供以下结构:

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-wrap div只打印一次,然后对数组中的每个项重复 div。就像现在一样,items-wrap对于teasers数组中的每个项重复一次。那么......有没有办法检查主阵列是否为空,但不重复?

目标是只在需要时打印 items-wrap 一次。

1 个答案:

答案 0 :(得分:0)

是的,有办法。 Mustache的方法为var IsIncluded = false; for(var i; i< array.length; i++) { if(array[i].name == ObjectToInclude.name && array[i].id == ObjectToInclude.id ) { IsIncluded = true; break; } } if(!IsIncluded) { array.push(ObjectToInclude); } 。如果等于ZERO,则为false并且不会呈现块。你的例子:

length

标记{{# teasers.length }} <div class="items-wrap"> <div class="items"> {{# teasers }} <div class="item"> {{ title }} </div> {{/ teasers }} </div> </div> {{/ teasers.length }} 将检查{{teasers.length}}内的项目数,并且仅在非空时才会呈现该块。

更多信息here

这个答案为时已晚,但我希望它有所帮助。