我正在尝试使用ajax调用从数据库中提取数据,然后将该数据放入视图模型中,然后使用knockout将其绑定到表中。这是我的代码:
int
然而,问题是我的视图model.rows是空的,因为我通过一些警告(“”)调用发现了`alert('ajax call'之外);首先调用,然后应用页面加载和绑定,然后是警报('内部ajax调用');叫做。我不明白这是怎么可能的,特别是因为我在应用绑定之前调用var model = new HomeModel()。如何确保在页面加载之前填充我的HomeModel的self.rows以确保我的.row不为空?
更新: 感谢@RoyJ,现在按预期工作:
<script>
$(document).ready(function () {
var LoadFiles = '@Url.Action("Files", "Home")';
var HomeModel = function () {
debugger
var self = this;
self.rows = ko.observableArray([]);
$.ajax({
method: "POST",
url: LoadFiles,
success: function (data) {
alert('inside ajax call');
self.rows = JSON.parse(data);
},
error: function (data) {
alert('error');
}
});
}
alert('outside ajax call');
var model = new HomeModel();
debugger
ko.applyBindings(model);
});
</script>
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre>