1

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

无论如何,我正在尝试使用带有 Dashbars 一侧的 Handlebars 来输出 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>

(我为格式化道歉......)电话数据(实际上是电话和/或电子邮件;我没有设计这个数据库......)大约在我的模板两端之间codepen.io 示例。(整个事情真的很长,我不想浪费任何人的时间在整个很长的事情上。)最初,我做的更多{{#if fieldThatShouldHaveData}} {{else}},但出于调试目的把它拿出来了。

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

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

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

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

4

1 回答 1

0

事实证明,错误消息引用的行是错误的,(可能是因为,当我在我的代码文件中查找行号时,我忘记从<cfinclude>顶部添加来自我的头部模板的行。我'对于 ColdFusion 来说仍然足够新......发生这种情况......)再往下,我确实有一个失踪{{/if}} 我不知道为什么这些行被引用了,但它确实存在。但是,我的“每个只打印最后一项”错误仍然存​​在,但我会为此创建一个不同的问题。

于 2015-04-21T17:53:46.513 回答