2

我只是想知道如何最好地解决这个问题。我想加载一个将通过 JSP 生成的初始页面,这将是我的淘汰视图。但是,在页面加载时必须立即执行 Ajax 请求以获取数据以设置字段值,这似乎是一种耻辱。

理想的情况是,如果我可以加载设置了值的初始视图,然后从中剔除以进行初始化。我不确定这是否可能?我的另一个想法是生成一个空视图,然后在底部放置一个部分,我在其中编写与我试图避免的 Ajax 请求等效的 JSON 输出。

当然其他人已经解决了同样的问题?

4

1 回答 1

4

您可以在呈现视图时简单地将 json 数据模板化到 javascript 中,并让您的淘汰赛访问该数据(或将其传递到 viewmodel)。

<script type="text/javascript">
    var data = /*INSERT TEMPLATED DATA HERE*/;

    var model = new Model(data);
    ko.applyBindings(model);
</script>

编辑:

我通常在通用模板化方法中构建用于淘汰的视图模型,以支持初始状态以及延迟状态,例如来自 ajax 调用。这将与我上面列出的方法很好地配合:

function Model(data, parent)
{
    var self = this;
    self.parent = parent;

    self.Load = function(data) {
        if (data) {
            //initialize data here
        }
    };
    self.Load(data); //call initially here in case of initial state


    //other functionality
}
于 2012-12-06T17:25:20.587 回答