我从文档中了解到,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个成员?
发布于 2015-10-22 22:45:41
很遗憾,我不会。如果不设置不同的变量,Hogan就无法做到这一点。这是Hogan的主要缺点之一(在我看来)。我不同意“它应该是无逻辑的”是这种缺乏功能的理由。if (true)和if (a == b)都是逻辑的,但是Hogan让你做其中一个,而不是另一个。我同意在模板中不应该有逻辑(因为它不能在模板中进行单元测试),但Hogan/mustache在这方面走得太远了。我推荐swig,它提供了Hogan给你的一切,加上if比较,加上循环控制(例如if (loop.first)),加上一个更好、更容易阅读的过滤器语法,而且性能影响很小(根据this,不到1.5秒就超过了100,000个模板,诚然,这是几年前的事情)。
编辑:不再维护swig;但是,无论在范围还是风格上,Nunjucks都与Swig非常相似。
发布于 2013-11-21 06:03:25
简短的awnser应该是不,它应该是无逻辑的
我刚刚问了一个关于类似问题的问题:Hogan.js - reference an item with a specific index选一个
https://stackoverflow.com/questions/17573979
复制相似问题