Handlebars.JS(带仪表板)解析错误 "expecting open_endblock got inverse"

Handlebars.JS (w/ Dashbars) parse error "expecting open_endblock got inverse"

首先,我将输出转储到 Handlebars 模板并通过 JSONlint.com 运行 并验证它,因此我的输入是有效的。其次,这是我能编写的最好的示例代码,它具有代表性但不包含重要数据:http://codepen.io/Muzical84/pen/BNBLom?editors=101(请注意,如果您启用了 HTTPS-Everywhere,请在 codepen.io 上将其关闭,因为支持被列为 "partial," 并且 Chrome 可能仍然会抱怨不安全的脚本;我在 JS 部分的底部包含了除 jQuery 之外的所有库,以关闭开发工具尽我所能。)我还将包括下面的一些代码,因为 SO 告诉我它不会让我包括 link 否则。

无论如何,我正在尝试使用 Handlebars 和 Dashbars 的一侧来输出 ColdFusion WSDL 的结果。它在周五下午工作,但是当我上周一开始编写代码时,我所做的一切都会产生这个错误:

     Uncaught Error: Parse error on line 139:
     ...                    {{else}}           
     -----------------------^
     Expecting 'OPEN_ENDBLOCK', got 'INVERSE'

此时的代码是:

<td><p>{{#each phoneObj}}
                    {{#if (s-start-with? 'Y' PRIMARY_FLAG)}}
                        <span class="primaryInformation">{{PHONE}}</span>
                            <span class="lightBlue">
                                {{#if COMM_LOCATION_CODE}}
                                    {{COMM_LOCATION_CODE}}
                                {{else}}
                                    {{PHONE_TYPE}}
                                {{/if}}
                            </span>
                    {{else}}
                        {{PHONE}}
                        <span class="lightBlue">
                            {{#if COMM_LOCATION_CODE}}
                                {{COMM_LOCATION_CODE}}
                            {{else}}
                                {{PHONE_TYPE}}
                            {{/if}}
                        </span>
                    {{/if}}
                    <br />
                {{else}}
                    No phone or e-mail data found
                {{/each}}</p>
            </td>

(抱歉格式化...) phone 数据(实际上是 phone and/or 电子邮件;我没有设计此数据库...)大致位于我的 codepen.io 示例中模板两端的中间位置。 (整件事真的很长,我不想在整件事上浪费任何人的时间。)最初,我做了更多 {{#if fieldThatShouldHaveData}} {{else}} 但出于调试目的将其取出。

起初,我将对象命名为"phone",并认为可能"phone.PHONE"太模糊了,但是"this.PHONE"并将其重命名为phoneObj并没有改变任何东西。这一切都在一个巨大的 {{#each this}} 中,它打印了 table 的行。我没有使用任何我之前没有在模板中使用过的标签,而且我确实确认嵌套 if 等对我来说是合法的。

顺便说一下,即使我用 {{! if xyz}} 注释掉那些行,我仍然会得到同样的错误,引用同一行。

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

我是模板的新手,所以以前做过的人可能会认为这是一个愚蠢的问题。我已经尽我所能使用可用的文档,但许多 handlebars 官方文档似乎假定熟悉模板。

原来错误消息引用的行是错误的,(可能是因为,当我在我的代码文件中查找行号时,我忘记从我的 head 模板中添加行<cfinclude> 在顶部。我对 ColdFusion 还很陌生,所以……发生了……)再往下看,我确实少了一个 {{/if}} 我不确定为什么这些线是被引用的是,但它确实存在。但是,我的 "each only prints the last item" 错误仍然存​​在,但我会为此创建一个不同的问题。