从AJAX调用中加载knock中的knockout.js形式

时间:2013-06-17 11:36:13

标签: php javascript jquery ajax knockout.js

我正在尝试加载一些存储为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;


}

如果我包含表而不是调用它可以运行的代码。但是,它是一个非常冗长的形式,考虑到这个代码将在其他人的服务器上调用我的,我想保持他们的代码最小。

1 个答案:

答案 0 :(得分:1)

你没有做任何约束。

success: function(response) { // on success..
    $('#order_div').html(response); // update the DIV
    ko.applyBindings(myModel); // rebind
}