到目前爲止mustache
是偉大的,但邏輯少現在似乎並沒有成爲一個功能。假設,我必須呈現模板,其中可以包含用戶的電子郵件和名稱。實施條件
如果電子郵件和名字都存在我希望我的渲染結果是:
<a href="mailto:EMAIL">NAME</a>
如果電子郵件是存在的,但沒有名字,結果將是:
<a href="mailto:EMAIL">EMAIL</a>
如果只是名稱模板應呈現爲:
NAME
所以現在我必須做類似:
{{#email}}<a href="mailto:{{email}}">{{#name}}{{name}}{{/name}}{{^name}}{{email}}{{/name}}</a>{{/email}}{{^email}}{{name}}{{/email}}
這真是太醜了!而這只是3個條件!如果我需要更多?我覺得在mustache
中應該有另外一種方法。或者不應該?
所以,小鬍子開發者認爲是邏輯少是好事,但我有一個說法。大多數情況下,我們需要檢查模板中的某個變量(大多數時候我們只需要檢查是否存在)。所以我會做這樣的事情:
{% if email %}{{ email }}{% else %}{{ name }}{% endif %}
,這看起來更全面然後
{{#email}}{{email}}{{/email}}{{^email}}{{name}}{{/email}}
不是嗎?
如果我需要檢查name
太:
{% if email %}{{email}}{% elif name %}{{name}}{% else %}Anonymous{% endif %}
VS
{{#email}}{{email}}{{/email}}{{^email}}{{#name}}{{name}}{{/name}}{{^name}}Anonymous{{/name}}{{/email}}
如果沒有,你會建議其他模板庫中javascript
渲染模板?與jQuery
(jQuery插件)集成是一個優勢,但不是要求 - 我可以自己做。
謝謝。
請查看:http://garann.github.com/template-chooser/ –
一些Mustache實現接受'{{#foo}} ... {{^ foo}} ... {{/ foo }}語法,它有點短。有些人甚至接受'{{#foo}} ... {{^}} ... {{/}}'。然而,鬍子仍然是冗長的,當然。 –