2

Knockoutjsテンプレートを使用しています。ページにはテンプレートhtmlがロードされ、しばらく表示されます。その後、viewModelがロードされてバインドされた後、正しく表示されます。これに対処するための最良の方法は何ですか?現在、display:noneに設定されているdivでテンプレートをラップしており、バインディングが適用された後にこれを削除しています。

4

2 に答える 2

3

スクリプト タグでマークアップをラップする:

<script type="text/html" id="viewModelTemplate">
... your markup ...
</script>

次に、次の単一の最上位要素を持ちます。

<div data-bind="template: {name: 'viewModelTemplate'}"/>

助けることができます。

于 2012-05-24T09:25:32.760 に答える
0

ビューモデルをバインドするのはいつですか? AJAX リクエストまたはイベントから実行していますか? データが存在する場合、HTML が表示される前に、ページの下部にあるスクリプト タグが実行され、バインディングが行われます。HTML が表示された後にバインディングを実行する必要がある場合は、メソッドを使用する必要があります。isLoadedAJAX を使用している場合は、空のビュー モデルにバインドし、読み込みが完了したときに設定したようなプロパティを持つようにビュー モデルを構成してから、それにバインドできます。

<div data-bind="visible: isLoaded">...</div>
于 2012-05-24T05:14:32.220 に答える