ノックアウト 3.2.0 で新しいコンポーネント システムを使用しようとしています。
現時点では多くのドキュメントはありませんが、これは機能します。
ko.components.register('price-input', {
template: '<span>price-input</span>'
})
ただし、template
バインディングを使用すると、次のように DOM に既に存在するテンプレート名を指定できます。
<script type="text/html" id="price_input">
<span>price-input</span>
</script>
次に、これを行うことができます:
<div data-bind="template: {name: 'price_input'}"></div>
だから私はこれを試しました:
ko.components.register('price-input', {
template: {name: 'price_input'}
})
しかし、うまくいきません。新しいコンポーネントで名前付きテンプレートを使用する方法はありますか、それともインラインであるか、AMD でロードする必要がありますか?
ありがとう
編集:RP Niemeyerの回答の後、明確にするために、私が彼の回答を試したテンプレートを次に示します。
<script type="text/html" id="ifx_price_input">
<h4>PRICE INPUT <span data-bind="text: value"></span></h4>
</script>
コンポーネントコードは次のとおりです。
ko.components.register('price-input', {
template: {element: 'ifx_price_input'}
})
テンプレートはロードされますが、エスケープされた文字列として扱われます。
アイデア?