如何在mustache.js中完成if / else?
我不知道如何在小胡子里做这件事,似乎很奇怪。 它是否支持?
这是我试图尝试的悲伤尝试:
{{#author}} {{#avatar}} <img src="{{avatar}}"/> {{/avatar}} {{#!avatar}} <img src="http://img.dovov.comdefault_avatar.png" height="75" width="75" /> {{/avatar}} {{/author}}
这显然是不正确的,但文件没有提到这样的事情。 单词“其他”甚至没有提到:(
另外,为什么这样devise小胡子呢? 这种事情是不好的? 是否试图强迫我在模型中设置默认值? 怎么样的情况下,这是不可能的?
这是你如何做/如果在胡须(完全支持):
{{#repo}} <b>{{name}}</b> {{/repo}} {{^repo}} No repos :( {{/repo}}
或者在你的情况下:
{{#author}} {{#avatar}} <img src="{{avatar}}"/> {{/avatar}} {{^avatar}} <img src="http://img.dovov.comdefault_avatar.png" height="75" width="75" /> {{/avatar}} {{/author}}
在文档中查找倒排部分: https : //github.com/janl/mustache.js
这是您在“控制器”中解决的问题,这是无逻辑模板的一个要点。
// some function that retreived data through ajax function( view ){ if ( !view.avatar ) { // DEFAULTS can be a global settings object you define elsewhere // so that you don't have to maintain these values all over the place // in your code. view.avatar = DEFAULTS.AVATAR; } // do template stuff here }
这实际上是一个很好的维护图像url或其他媒体,可能会或可能不会改变你的模板,但需要一些习惯。 关键是要清楚模板隧道视觉,一个化身img url绑定在其他模板中使用,你要保持在X模板或单个DEFAULTS设置对象的url? ;)
另一个select是做以下事情:
// augment view view.hasAvatar = !!view.avatar; view.noAvatar = !view.avatar;
并在模板中:
{{#hasAvatar}} SHOW AVATAR {{/hasAvatar}} {{#noAvatar}} SHOW DEFAULT {{/noAvatar}}
但这是违背无逻辑模板的全部意义的。 如果这就是你想要做的,你想要逻辑模板,你不应该使用胡子,但给自己一个公平的机会,学习这个概念;)
你的其他陈述应该是这样的(注意^
):
{{^avatar}} ... {{/avatar}}
在胡子,这被称为“倒立部分”。