应用ko绑定后发生ajax调用

时间:2016-01-13 02:17:23

标签: javascript jquery ajax knockout.js

我正在尝试使用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>

0 个答案:

没有答案