3

プロジェクトの 1 つを、アンダースコア テンプレートの代わりに HandlebarsJS テンプレートを使用するように移行しようとしていますが、非常に奇妙な問題に遭遇しました。

私はプリコンパイル済みのテンプレートを使用しており、レンダリングされたテンプレートを DOM に追加しているすべての場所で、空のテキスト要素も追加されており、それらの代わりにギャップがレンダリングされてレイアウトの問題が発生しています。

Chrome 開発コンソールを見ると、div に追加された 3 つのテンプレートの次のマークアップが表示されます。

> <div>
      ""
      <div><!--content --></div>
      ""
      <div><!--content --></div>
      ""
      <div><!--content --></div>
  </div>

親 div HTML を JavaScript コンソールにダンプするとき、スペースはまったくありません。単純に次のようになります。

<div><!--content --></div><div><!--content --></div><div><!--content --></div>
4

1 に答える 1

1

元の質問へのコメントによると、問題はプリコンパイル中に追加された\ ufeff文字でした。私のIDEと開発者のブラウザ拡張機能は、表示される空白オプションが有効になっていても文字を表示しません。

この問題を解決するために、テンプレートを更新してコードを追加しました

$container.append(template({ *data* }).replace(/\ufeff/, ''));
于 2013-03-07T12:21:18.330 に答える