別の回答を送信する b/c 記録のために以前の回答を残しておきます。私はこのアプローチがうまくいくと思います。
HTML 内で、2 つのセクションを定義します。1 つ目は、テンプレート コードを配置する場所です。プレーンな div タグ内のコメント内に入ります。2 つ目は、Knockout が使用するテンプレートが配置される場所です。次のようになります。
<template name="koTemplate">
<div id="myTemplate">
<span>Here is my template <a href="#">with children</a></span>
</div>
<script type="text/html" id="test"></script>
</template>
次に、クライアント JS コードで、テンプレートがレンダリングされたときに実行するコールバックを追加します。
Template.koTemplate.rendered = function () {
// Get the first node, then get the content inside of it
var templateHtml = this.firstNode.innerHTML;
// Remove the element so it doesn't get rendered
this.firstNode.parentNode.removeChild(this.firstNode);
// another option is to surround the contents inside the template w/comments, but that loses syntax highlighting
// Get the target node for placing the template in
var templateNode = this.lastNode;
// place the content from the original node to the target node
templateNode.innerHTML = templateHtml;
};
これは基本的に、テンプレートのコンテンツを取得し、テンプレートを削除してから、スクリプト タグ内に配置します。結果は次のようになります。
<script type="text/html" id="test">
<span>Here is my template <a href="#">with children</a></span>
</script>