Ошибка синтаксического анализа Handlebars.JS (w/ Dashbars) "ожидание, что open_endblock получит обратное значение"
Во-первых, я выгрузил выходные данные, которые идут в шаблон Handlebars, и провел его через JSONlint.com, и он подтвердил, поэтому мои входные данные действительны. Во-вторых, это лучший пример кода, который я мог бы составить, который является репрезентативным, но не включает жизненно важные данные: http://codepen.io/Muzical84/pen/BNBLom?editors=101 (обратите внимание, если у вас включен HTTPS-Everywhere, отключите его на codepen.io, поскольку поддержка указана как "частичная", и Chrome может по-прежнему лаять о небезопасных сценариях; я включил все библиотеки, кроме jQuery minified, в нижней части JS, чтобы закрыть de v инструменты, насколько я мог.) Я также буду включать некоторые из кода ниже, потому что SO говорит мне, что он не позволит мне включить эту ссылку в противном случае.
Во всяком случае, я пытаюсь использовать 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" был слишком двусмысленным, но "this.PHONE" и переименование его в phoneObj ничего не изменило. Это все в огромном {{#each this}}
который печатает строки таблицы. Я не использую какие-либо теги, которые я не использовал ранее в шаблоне, без инцидентов, и я подтвердил, что это законно для меня, чтобы вложить, если и т. Д.
Кстати, даже если я закомментирую эти строки с {{! if xyz}}
Я все еще получаю ту же ошибку, ссылаясь на ту же строку.
У меня также проблема моей внешней {{#each}}
зацикливание таким образом, что через шаблон выводится только последняя возвращенная запись. Все входит в систему {{log this}}
после этого открытия {{#each}}
, но он даже не прячется в выводе HTML где-то.
Я новичок в шаблонах, так что те из вас, кто делал это раньше, могут подумать, что это глупый вопрос. Я сделал все, что мог с доступной документацией, но большая часть официальной документации руля, кажется, предполагает знакомство с шаблонами.
1 ответ
Оказалось, что строка, указанная в сообщении об ошибке, была неправильной (вероятно, потому что, когда я искал номер строки в моем файле кода, я забыл добавить строки из шаблона заголовка из моего <cfinclude>
на вершине. Я все еще новичок в ColdFusion, что... это происходит...) Далее, у меня пропал {{/if}}
Я не уверен, почему цитировались эти строки, но это так. Однако моя ошибка "каждый печатает только последний элемент" сохраняется, но я создам для этого другой вопрос.