テキスト プラグインで require.js を使用してテキスト ファイルをインポートすると、最終出力でスラッシュの一部が欠落し、閉じられていないブロック ステートメントが原因でパーサーが失敗します。JavaScript は非常に標準的で、次のようになります。
define(['handlebars', 'some/dependency', 'text!some/text.html'], function (Handlebars, SomeDependency, text) {
var MyView = Backbone.View.Extend({
template: Handlebars.compile(text),
// etc.
})
})
インポートは機能します。つまり、require からデータを取得しますが、text.html の内容が次のようになっていることがわかりました。
<div {{#if prop}}class="{{prop}}" {{else}} class="other-class"{{/if}}></div>
正しく戻りません。代わりに私が得るものは次のとおりです。
<div {{#if prop}}class="{{prop}}" {{else}} class="other-class"{{ if}}></div>
html 要素内にある場合、if ブロックの終了スラッシュが何らかの形で失われます。ただし、次のように変更すると:
{{#if prop}}
<div class="{{prop}}"></div>
{{else}}
<div class="other-class"></div>
{{/if}}
正しく返ってきます。
さて、明白な解決策は 2 番目のパラダイムを使用することですが、私のテンプレートはすべて最初のものと同じように設定されており、数日前 (週、トップ) まで正しく機能していました。
誰がこれを引き起こしているのかについて何か考えがありますか?
今のところ、コミット ログを調べて、明らかな何かが見つかるかどうかを確認します。何か見つかった場合は、ここに追加します。