【问题标题】:Hogan.js: If-statementsHogan.js:如果语句
【发布时间】:2013-07-08 13:55:01
【问题描述】:

我从文档中了解到 Hogan 不支持很多逻辑 - 但是有一些方法可以让您操纵这个模板系统来做您需要的事情。

基本上,这就是我需要的(在伪代码中 - 假设 people.length >= 1):

{{#if people.length == 1}}
    <p>Your contact person is {{name}}.</p>
{{else}}
    <p>Your contact people are:</p>
    <ul>
    {{#people}}
        <li>{{name}}</li>
    {{/people}}
    </ul>
{{/if}}

这在 Hogan 模板引擎中是否可能,或者我需要发送另一个变量来告诉我虚构的人员数组中是否正好有 1 个成员?

【问题讨论】:

    标签: javascript html templates hogan.js


    【解决方案1】:

    短遮阳篷不会,它应该是无逻辑的

    我只是提出了一个关于类似问题的问题: Hogan.js - reference an item with a specific index 选一个

    【讨论】:

      【解决方案2】:

      很遗憾,没有。如果不设置不同的变量,Hogan 就无法做到这一点。这是 Hogan 的主要缺点之一(在我看来)。我不同意“它应该是无逻辑的”是这种缺乏功能的理由。 if (true)if (a == b) 都是合乎逻辑的,但 Hogan 让你做一个而不是另一个。我同意你不应该在模板中包含逻辑(因为它不能在那里进行单元测试),但是 Hogan/mustache 在这方面走得太远了。我推荐swig,它可以为您提供Hogan 提供的所有内容,加上if 比较,加上循环控制(例如if (loop.first)),再加上更好、更易于阅读的过滤器语法,性能损失很小(不到一秒根据this,有超过 100,000 个模板,诚然,这是几年前的)。

      编辑:不再维护 Swig;但是,Nunjucks 在范围和风格上都与 swig 非常相似。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-24
        • 2012-11-19
        • 2018-12-10
        • 2021-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多