0

knockout.js フォームのテキストとして保存されている HTML を読み込もうとしています。顧客のサーバーは、私のサーバーへの AJAX GET 呼び出しを使用し、テーブルの HTML を返します。現在、テーブルが返されていますが、knockout.js が読み込まれていないようにフォーマットされていますが、エラーは発生していません (ドロップダウンが入力されていない、テーブルの foreach ループが空白行を表示している、セカンダリ div が表示されている)送信ボタンが押されたときにのみ表示する必要がある場合)。

このページに HTML がある場合は機能するので、フォームのコードが正しくないことは確かです。私が考えることができる唯一のことは、ノックアウトが一重引用符と二重引用符についてうるさいということですが、それはエラーを引き起こすと思います. 現在、サーバーでテストしているため、現時点では同じオリジン ポリシーは問題になりません。

これが最初に読み込まれるページです

//main.html
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>

<!-- I also tried to include the knockout file includes here but made no difference -->

<script>
<!-- call to get HTML for knockout form -->
$.ajax({
        type: 'GET',
        url: '/orders/return_form',
        data: "true",
        success: function(response) { // on success..
            $('#order_div').html(response); // update the DIV
        }
    })
</script>

<div id = "order_div">
        <!-- returned knockout form goes here -->
</div>


<script src="knockout.js"></script>
<script src="knockout_info.js"></script>  <!-- MVVM file -->
<script src = "Knockout-Validation/Src/knockout.validation"</script>

テーブルのコードを返すコードは次のとおりです

//orders/return_form

if($_GET['true']){

     echo "table code here ";  
     //I tried to encode this before but got all kinds of extra markup due to whitespace and other misc. characters

    //or

    $form = new stdClass;
    $form->table = "<form method='post'>
                    <input type='textbox' name='text'/>
                    <input type='submit' name='textsubmit'/>
                </form>";
    echo $form->table;


}

コードを呼び出す代わりにテーブルを含めると、機能します。ただし、これは非常に長い形式であり、このコードが他の誰かのサーバーにあることを考慮して、コードを最小限に抑えたいと思います。

4

1 に答える 1

1

あなたは拘束力を持っていません。

success: function(response) { // on success..
    $('#order_div').html(response); // update the DIV
    ko.applyBindings(myModel); // rebind
}
于 2013-06-17T11:38:35.853 に答える