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 回答