Ошибка синтаксического анализа 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}} Я не уверен, почему цитировались эти строки, но это так. Однако моя ошибка "каждый печатает только последний элемент" сохраняется, но я создам для этого другой вопрос.

Другие вопросы по тегам