AFAIK Knockout は、jQuery テンプレートのようにプリコンパイル テンプレートを JavaScript 変数として保存することをサポートしていません。
したがって、質問で示した例は、Knockout テンプレート バインディングのみを使用することはできません。バインディングは、レンダリング後およびレンダリング後のいくつかのコールバックを提供しますが、これらのコールバックの入力が、JavaScript 参照ではなく、コンパイルされた DOM 要素であるため、これは完全に同じではありません。
現在のプロジェクトでは、テンプレート エンジンとしてハンドルバーを使用しています。これを選択した主な理由は次の 2 つです。
- jQuery テンプレートは非推奨であり、現在公式のプラグインは存在せず、jQuery UI チームはコアにテンプレートを含める時期/場合について不明です。
- Handlebars を使用すると、テンプレートを抽出して、コマンド ラインからプリコンパイルできる別の .handlebars ファイルにすることができます。
ノックアウト テンプレート バインディングは使用しません。すべてのテンプレートは個別のファイルに抽出され、個別の .js ファイルにプリコンパイルされます。コンパイル済みの .js ファイルをインクルードするだけで、JS 変数としてテンプレートにアクセスできます。
jQuery テンプレートを選択し、テンプレートをプリコンパイルしたい場合は、すべてのテンプレートを 1 つの HTML ファイルに追加し、各テンプレートを取得して JavaScript に変換する JavaScript を記述するか、小さなノードを作成する必要があります。テンプレートを取り込んで変換し、再度出力するアプリ。