3

jquery、jqueryui、ノックアウト、およびWebサービスからのデータを使用して、クライアント側で動的に作成する単純なhtmlページがあります。

次のようなコードを使用して、いくつかのタグを動的に作成します。

document.getElementById("myDiv").innerHTML = dynamicTags;

その後、ko.applyBindings を呼び出します。

ko.applyBindings(Datas, document.getElementById("myDiv"));

これはまったく機能しません。Chrome デバッガーでは例外は発生しません。

私はこのコードでいくつかのランダムなテストを行いました:

setTimeout(function () {
    ko.applyBindings(Datas, document.getElementById("myDiv"));
}, 3000);

すべてが完璧に機能します。

なぜこれが起こるのですか?値とスタイルを同時にバインドします。

このコードは、ボタンのクリックによって呼び出されます!

4

2 に答える 2

3

DOM の最後にあるスクリプトで、または DOM が読み込まれたときにバインディングを適用していることを確認してください。jQuery では、これは次のように行うことができます。

$(document).ready(function() {
    // apply bindings here
});

そうしないと、HTML がメモリに完全に読み込まれる前、またはダウンロードされる前に、インラインのスクリプトが呼び出される可能性があります。

于 2013-09-06T13:37:00.063 に答える