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" 错误仍然存在,但我会为此创建一个不同的问题。
首先,我将输出转储到 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" 错误仍然存在,但我会为此创建一个不同的问题。