【发布时间】:2011-08-27 00:26:25
【问题描述】:
我不知道如何在胡子上做到这一点似乎很奇怪。支持吗?
这是我悲伤的尝试:
{{#author}}
{{#avatar}}
<img src="{{avatar}}"/>
{{/avatar}}
{{#!avatar}}
<img src="/images/default_avatar.png" height="75" width="75" />
{{/avatar}}
{{/author}}
这显然是不对的,但文档没有提到这样的事情。甚至没有提到“else”这个词:(
另外,为什么要这样设计小胡子?这种事情被认为是坏事吗?它是否试图强迫我在模型本身中设置默认值?那不可能的情况呢?
【问题讨论】:
-
“为什么要这样设计小胡子?”我不太确定,但我认为模板语言应该是这样的:一种用于编写模板的语言,即看起来像它们产生的输出的东西,只是变量位所在的位置有孔。将逻辑放入模板语言中会使模板更加复杂,而当您已经有了一种编程语言来处理逻辑位时,为什么还要麻烦呢?
-
@PaulD.Waite “无逻辑”实际上意味着“非任意代码”,我认为。将真正的视图逻辑放入代码中与将非视图逻辑放入模板中一样糟糕。 Mustache 试图提供一个最低限度的逻辑来实现这一点。
-
或使用handlebars 代替小胡子。能够写作,例如
{{#each items}}{{#unless @first}}Output comma before 2nd, 3rd, 4th...{{/unless}}{{/each}}更具可读性,更简洁,并且仍然是演示文稿。 “无逻辑”是一个指导方针,它不一定是紧身衣。 -
当 OP 说“这是我的悲伤尝试 [...] 这显然是不对的”...然后接受的答案是副本时,它可能不是一个多功能的模板引擎-粘贴该代码:)。不判断OP或答案;就在
mustache -
如果你使用 PHP,试试
sm-mustache,我已经实现了|else 块来减少那些额外的声明..
标签: javascript templates mustache