如何真正地将模板与代码分开?

时间:2013-09-26 20:11:07

标签: coffeescript handlebars.js template-engine

我在这里有一个难题,我为不能复制和粘贴代码作为内部公司的东西而道歉。我会尝试在不显示代码的情况下尽力解释。

假设我有一个充满HTML和一些轻量级逻辑({#if}语句)的Handlebars页面。问题是,HTML位之间散布着很多if / else / etc语句。这可能很好,除了在each循环内,我现在必须引入一些超出Handlebars允许的逻辑(基本上我需要检查循环的当前迭代的索引[if index] > 4然后..])。所以现在我必须将我的逻辑编码到Handlebars帮助器中,但我现在还必须将所有HTML带入帮助程序代码中! e.g:

if @isSomeVar?
  output += '<p class="something">'
else
  output += '<p class="something-else" data-stuff="Some Data">'

output += if @myVar? then @myVar else 'A hardcoded string'
output += '</p><div class="info">'

因为Handlebars是无逻辑的,因为它想要保持干净,所以我必须将HTML移动到我的.coffee代码中,这有点违背了分离代码的全部目的。呈现!

我的解决方案在世界上是什么?

0 个答案:

没有答案