HandlebarsJS每个只打印数组中的最后一项

时间:2015-04-21 18:18:46

标签: javascript mustache handlebars.js

这是这个问题的一个分支:Handlebars.JS (w/ Dashbars) parse error "expecting open_endblock got inverse"(其中也有一个codepen。)我在那里发布了这个因为我认为问题是相关的,也许(因为{{else}}可以与if或者每个人一起使用,但结果并非如此。

具体做法是:

  

我还遇到了我的最外层{{#each}}循环问题,只有通过模板输出的最后一条记录才会输出。在打开{{log this}}之后,所有内容都会在{{#each}}后登录,但它甚至不会隐藏在HTML输出中。

所以我的表应该有4行,对象0到3会记录到控制台,但只有第四项(第3项)被添加到表中。内部的每个人都按预期工作,任何和所有其他迭代器功能都是如此;我不确定为什么它只是外部的失败。创建我的对象数组的JSON在我使用过的每一个linter中都有效,就像我的JavaScript一样。 Atom应该有一个把手短绒,但实际上似乎并没有...嗯......工作。

我正在使用Dashbars,(包含lodash.jsmoment.js依赖项),但是在我开始使用该库之前就存在此错误。 FWIW,jQuery 2.1.3 IS安装,并在任何其他库之前加载,所有这些都在<head>标记中。 (我不知道它在哪里重要,但以防万一。)因为涉及JavaScript,是的,我在Chrome中。 Handlebars的版本是最新的3.0.1,使用完整版本,因为我的用例不允许预编译。另一个NB是所有这些都嵌入在.cfm文件中(不是我的选择),所以一切都先通过CFML解释器运行。

1 个答案:

答案 0 :(得分:0)

所以......我设法再次超越自己。我已经创建了fork原始代码,但我的浏览器中的HTTPS策略使其无法正常工作= - \

&#34;钱&#34;差异如下(不能使用SO <ul>,因为我无法在子弹块中嵌入代码)

*我一直试图将我的模板卡入<tr>元素,以避免Handlebars处理比我认为必要的更多代码行:

 <tr class="searchResults" id="searchResultsHTML"></tr>
    <script id="result-template" type="text/x-handlebars-template">
        <!--- To accommodate for that this would all begin and end with a <tr>, I tried this:  --->
         {{#unless @first}}
                <tr>
            {{/unless}}
            <!--- The rest of the template --->
           {{#unless @last}}
                </tr>
            {{/unless}}
    </script>

*以优秀的程序员方式,我多次分叉我的实际文件,尝试不同的事情。 (大多数情况下这样做是为了避免无休止的git重置和分支;我知道git对于这类事情意味着什么,但我只是希望能够立刻刷新旧标签。无论如何!)取出那些{{ 1}}阻止......显然,我误解了它的作用(因为the official documentation有点......很少......在那一点上。那里没有{TRUE倒数} {1}})为了那些不想打扰点击代码笔的人:

{{unless}}

是的,我坚持使用ColdFusion评论;因为那些仅供我参考,或者是可怜的下一个开发人员,他们不需要去客户端,这样Handlebars就没有花费宝贵的时间来渲染它们。 (我已经烦恼了,Handlebars将不得不通过我的标题行和其他一些文本进行流失。)此工具在我们的数据库中搜索可能代表意外重复帐户的客户编号,因此如果您搜索John Smith。 ..oi!

所以对于那些用Google搜索过来的人来说......如果这有助于一个人像我一样避免转动轮子,我会很高兴。