2

これについてどうするのが最善かを考えているだけです。JSP を介して生成される初期ページをロードしたいのですが、これが私のノックアウト ビューになります。しかし、ページの読み込み時にすぐに Ajax リクエストを実行して、フィールド値を設定するためのデータを取得する必要があるのは残念です。

理想的なのは、値を設定して初期ビューをロードし、ノックアウトを取得してこれから初期化できる場合です。これが可能かどうかはわかりませんが?私が考えていたもう 1 つの考えは、空のビューを生成し、回避しようとしている Ajax 要求に相当する JSON 出力を書き込むセクションを一番下に置くことでした。

きっと他の誰かがこの同じ問題を解決しましたか?

4

1 に答える 1

4

ビューがレンダリングされているときにjsonデータをjavascriptに単純にテンプレート化し、ノックアウトでそのデータにアクセスする(またはビューモデルに渡す)ことができます。

<script type="text/javascript">
    var data = /*INSERT TEMPLATED DATA HERE*/;

    var model = new Model(data);
    ko.applyBindings(model);
</script>

編集:

私は通常、一般的なテンプレート化されたアプローチでノックアウト用のビューモデルを構築して、初期状態と ajax 呼び出しなどの遅延状態をサポートします。これは、上記のアプローチでうまく機能します。

function Model(data, parent)
{
    var self = this;
    self.parent = parent;

    self.Load = function(data) {
        if (data) {
            //initialize data here
        }
    };
    self.Load(data); //call initially here in case of initial state


    //other functionality
}
于 2012-12-06T17:25:20.587 に答える