Coffeescript 如何真正将模板和代码分开?

Coffeescript 如何真正将模板和代码分开?,coffeescript,handlebars.js,template-engine,Coffeescript,Handlebars.js,Template Engine,我在这里遇到了一个难题,我很抱歉不能仅仅复制和粘贴代码,因为它是公司内部的东西。我会尽可能地解释,而不显示代码 假设我有一个充满HTML和一些简单逻辑({if}语句)的把手页面。问题是,在HTML位之间有很多if/else/etc语句。这可能很好,除了在每个循环中,我现在必须引入一些超出Handlebar允许的逻辑(基本上我需要检查循环当前迭代的索引[如果索引>4,那么..])。所以现在我必须将我的逻辑编码到一个Handlebar助手中,但我也必须现在将所有的HTML编码到助手代码中!e、 g:

我在这里遇到了一个难题,我很抱歉不能仅仅复制和粘贴代码,因为它是公司内部的东西。我会尽可能地解释,而不显示代码

假设我有一个充满HTML和一些简单逻辑(
{if}
语句)的把手页面。问题是,在HTML位之间有很多if/else/etc语句。这可能很好,除了在
每个
循环中,我现在必须引入一些超出Handlebar允许的逻辑(基本上我需要检查循环当前迭代的索引[如果索引>4,那么..])。所以现在我必须将我的逻辑编码到一个Handlebar助手中,但我也必须现在将所有的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">'
如果@isSomeVar?
输出+='

' 其他的 输出+='

' 输出+=如果@myVar?然后@myVar else“一个硬编码字符串” 输出+='

'
因此,由于Handlebar是无逻辑的,因为它希望保持干净,所以我必须将HTML移动到我的.coffee代码中,这有点违背了分离代码和表示的全部目的


我的解决方案到底是什么?

因为在整个代码中有大量的条件需要检查。我不知道如何使这段代码看起来干净。我在.hbs文件中会有很多条件语句,或者在.coffee文件中会有很多HTML。你能使用不同的模板系统吗@hpaulj我不能改变它,不,我是一个庞大的团队。但实际上,这个问题是关于任何无逻辑的模板系统,而不仅仅是把手。我看不出一个人怎样才能真正100%地将表示和逻辑分开。