3

我从文档中了解到 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 个成员?

4

2 回答 2

2

抱歉不行。如果不设置不同的变量,Hogan 就无法做到这一点。这是 Hogan 的主要缺点之一(在我看来)。我不同意“它应该是无逻辑的”是这种缺乏功能的理由。两者if (true)if (a == b)都是逻辑,但霍根让你做一个而不是另一个。我同意你不应该在模板中包含逻辑(因为它不能在那里进行单元测试),但是 Hogan/mustache 在这方面走得太远了。我推荐swig,它可以为您提供 Hogan 提供的所有内容,以及比较if、循环控制(例如这个if (loop.first),诚然,这是几年前的事了)。

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

于 2015-10-22T14:45:41.410 回答
0

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

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

于 2013-11-20T22:03:25.067 回答