我只是想知道如何最好地解决这个问题。我想加载一个将通过 JSP 生成的初始页面,这将是我的淘汰视图。但是,在页面加载时必须立即执行 Ajax 请求以获取数据以设置字段值,这似乎是一种耻辱。
理想的情况是,如果我可以加载设置了值的初始视图,然后从中剔除以进行初始化。我不确定这是否可能?我的另一个想法是生成一个空视图,然后在底部放置一个部分,我在其中编写与我试图避免的 Ajax 请求等效的 JSON 输出。
当然其他人已经解决了同样的问题?
我只是想知道如何最好地解决这个问题。我想加载一个将通过 JSP 生成的初始页面,这将是我的淘汰视图。但是,在页面加载时必须立即执行 Ajax 请求以获取数据以设置字段值,这似乎是一种耻辱。
理想的情况是,如果我可以加载设置了值的初始视图,然后从中剔除以进行初始化。我不确定这是否可能?我的另一个想法是生成一个空视图,然后在底部放置一个部分,我在其中编写与我试图避免的 Ajax 请求等效的 JSON 输出。
当然其他人已经解决了同样的问题?
您可以在呈现视图时简单地将 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
}