我正在尝试加载一些存储为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;
}
如果我包含表而不是调用它可以运行的代码。但是,它是一个非常冗长的形式,考虑到这个代码将在其他人的服务器上调用我的,我想保持他们的代码最小。
答案 0 :(得分:1)
你没有做任何约束。
success: function(response) { // on success..
$('#order_div').html(response); // update the DIV
ko.applyBindings(myModel); // rebind
}