0

Webアプリではハンドルバーのコンパイル済みテンプレートを使用します。最近、要素の1つが壊れました。特定の場所で誤ったHTMLが使用されていました。プリコンパイルされたjsを見ると、要素が欠落していることがわかります。プリコンパイルされたHTMLは非常に大きく複雑で、多くのハンドルバー演算子があります。非常に簡略化されたバージョンは次のとおりです。

{{#if isGeneric}}
<!-- SEARCH FOR ME-->
<td class="empty">&nbsp;</td>
<td class="empty">&nbsp;</td>
<!-- THE END FOR ME-->
{{else}}
<td class="description"><p id="{{productId}}" isGeneric="{{isGeneric}}" productType="{{productType}}" class="bluetext productid_opener">{{description}}</p>
<td class="something">{{productName}}</td>
{{/if}}

HTMLのこのスニペットは、別のスニペットと非常によく似ています(違いがある場合)。

これをプリコンパイルして、生成されたHTMLを検索するとprogramXX、コードがどこにも見つかりません(「SEARCHFORME」など)。コードのその特定のセクションの前後のハンドルバープログラムには、ギャップが付いていることに気付きました。例えば:

function program52(depth0,data) { // find elements in the condition just prior to the "if" above }
function program54(depth0,data) { // find elements from HTML in condition just after the "if" above }

そのため、関数program53には関連するコードが含まれていると思いますが、生成されたHTMLに含まれていないのはなぜですか?ハンドルバーは、HTMLに含めるまたは除外するものをどのように決定しますか?

4

1 に答える 1

0

https://github.com/wycats/handlebars.js/issues/452を投稿しましたが、これは実際にはhttps://github.com/wycats/handlebars.js/issues/428の複製でした。

この問題は解決され、まもなくnpmで利用できるようになります。

于 2013-02-26T07:30:01.633 に答える