{{#unless @last}}无法在Assemble

时间:2015-12-04 00:04:46

标签: javascript handlebars.js yaml html-email assemble

我在这个咕噜咕噜的环境中进行电子邮件开发:https://github.com/leemunroe/grunt-email-workflow

我有一排链接,它们之间有一个管道。当然,我不想在最后一个链接上使用管道。

这是 的工作原理,但(来自here):

{{#each page.footer.service_link }}
  <a href="{{ link }}" style="text-decoration:none;">{{ name }}</a>
  {{#unless @last}}
   &nbsp;|&nbsp;
  {{/unless}}
{{/each}}

我检查了版本号,它应该适用于已安装的版本。

如果我尝试这样的话:

{{#each page.footer.service_link }}
  {{#unless @last}}
  <a href="{{ link }}" style="text-decoration:none;">{{ name }}</a>&nbsp;|&nbsp;
  {{/unless}}
  <a href="{{ link }}" style="text-decoration:none;">{{ name }}</a>&nbsp;
{{/each}}

结果变为:

LINK 1 | LINK 1 LINK 2 | 。 。 。 | LINK 4 LINK 5 | LINK 5

(注意最后没有管道)

这就是我的解决方案,但我对它不满意,因为它要求我在yml文件中添加一个额外的密钥:

{{#each page.footer.service_link }}
  <a href="{{ link }}" style="text-decoration:none;">{{ name }}</a>
  {{#if pipe}}
    &nbsp;|&nbsp;
  {{else}}
    &nbsp;
  {{/if}}
{{/each}}

这是我设置yml文件的方式:

footer:  
  service_link:
    - name: "LINK 1"
      link: "#"
      pipe: true
    - name: "LINK 2"
      link: "#"
      pipe: true
    - name: "LINK 3"
      link: "#"
      pipe: true
    - name: "LINK 4"
      link: "#"
      pipe: true
    - name: "LINK 5"
      link: "#"
      pipe: false

我不知道该怎么做。因为它是电子邮件开发者,所以我只能使用css来处理。 (感谢Outlook和Gmail ......)似乎#unless正在工作,因为管道已经投入使用,但是@last并没有停止渲染最后一个。这是我第一次使用yaml,但即使我试图将它放在json格式中,我也遇到了同样的问题。不过,我对这种环境仍然很新。

1 个答案:

答案 0 :(得分:0)

似乎DROP TEMPORARY TABLE daterange 在您的版本中无法正常工作(如果是,您的第二个示例应该只有一个 LINK 5 。)

您可以尝试@last并切换到删除第一个索引之前的元素:

@index

另外,这里有一个example jsfiddle来表示这些在最新版本的车把上是等效的。