最初に、Handlebars テンプレートに送信される出力をダンプし、JSONlint.com で実行して検証すると、入力が有効になります。第二に、これは代表的なコードですが、重要なデータは含まれていません : http://codepen.io/Muzical84/pen/BNBLom?editors=101サポートは「部分的」としてリストされているため、codepen.io でそれをオフにしてください。Chrome はまだ安全でないスクリプトについて吠える可能性があります。開発者を黙らせるために、jQuery 以外のすべてのライブラリを JS 部分の下部に縮小して含めました。できるだけ多くのツールを使用します。) SO は、それ以外の場合はそのリンクを含めることはできないと言っているので、以下のコードの一部も含めます。
とにかく、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出力のどこかに隠れていません。
私はテンプレート作成が初めてなので、以前にテンプレート作成を行ったことがある人は、これはばかげた質問だと思うかもしれません。利用可能なドキュメントでできる限りのことをしましたが、ハンドルバーの公式ドキュメントの多くは、テンプレートに精通していることを前提としているようです.