【问题标题】:Mustache template with label带有标签的小胡子模板
【发布时间】:2014-05-27 14:30:54
【问题描述】:

如果我有以下数组

array (
    'people' => array(
        [0] => array('name'=>'name1'),
        [1] => array('name'=>'name2', 'last' => true)
    )
);

我想使用Mustache 模板输出它,以便最终的html 看起来像这样:

<div>
    Names: name1, name2
</div>

虽然如果数组是空的,那么它不应该输出任何东西。

这是我当前的模板

<div>
    {{#people}}
        Names: {{name}}{{^last}}, {{/last}}
    {{/people}}
</div>

哪个输出

<div>
    Names: name1, Names: name2
</div>

我明白为什么它没有输出我想要的但我不知道如何解决它。

【问题讨论】:

    标签: php mustache.php


    【解决方案1】:
    <div>
        {{#people.0}}
            Names:
            {{#people}}
                {{name}}{{^last}}, {{/last}}
            {{/people}}
        {{/people.0}}
    </div>
    

    您将Names: 写入两次的原因是因为{{#people}}{{\people}} 中的所有内容都被视为循环。

    【讨论】:

    • 是的,因为如果没有人,Names: 标签仍然存在。
    • hasNames 键添加到您的数组中,或者使用hacky {{# people.0 }} 检查它是否为空:stackoverflow.com/questions/19572096/…
    • 或者你可以使用{{#people.length}}(更新答案)
    • 抱歉 - php .length 可能不起作用。我会让你回到@bobthecow 的评论。
    • 不,我无法让.length 工作,但#people.0 效果很好,谢谢
    猜你喜欢
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 2011-10-14
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多